誰かがコンテキストフィルターと呼ばれる獣を飼いならすのを手伝ってくれるといいのですが。 :)すべてに特定の分類用語が割り当てられた一連のノードがあります(すべて同じ語彙から)。ただし、URLパスにはこれらを含めません。
例えば:
語彙名=動画
ノードには条件があります:
-food
--vegetable
---carrot
それに割り当てられていますが、私が欲しい唯一のURLは:
site.com/videos/title-of-node
そして、それらに関する用語を持つ他のすべてのノードはすべて「videos」ディレクトリの下にあります:
site.com/videos/title-of-another-node
site.com/videos/title-of-yet-another-node
ニンジンの用語を持つノードのみを表示するコンテキストフィルターを持つビューを作成しました。そして、それはビューページでプレビューすると完全に機能しますが、実際のページをロードするとき、「WHEN THE FILTER VALUE IS = URLにありません->指定したフィールドのすべての結果を表示します
私の主な問題は、「コンテキストフィルター値はURLによって提供される」ということです。そして、私の言葉はURLにありません。したがって、どういうわけか、各ノードに関連付けられている用語を取得する必要があります。
どんな助けでも大歓迎です!
ノードビューを作成する代わりに、分類法ビューを作成します。
その中で2つの関係を提供します。
準備できた。
EDIT:ディスカッションに従って、用語とそのサブ用語の下のノードも表示する必要がありました。
タイプコンテンツのビューを作成します。
必須フィールドを追加します。
タイプコンテンツのコンテキストフィルターを追加します:分類用語ID(深さあり)を持ち、分類にある階層と同じ深さの値の深さを選択します。
これで、用語idを入力として渡すと、子ノードを含む、その分類用語の下のすべてのノードが表示されます。
URLを用語IDではなく用語名に変更する場合は、次の手順を実行します。
ビューでは、パスをtaxonomy/term /%として指定すると、デフォルトの分類パスが上書きされます。
インストール Pathauto モジュールこれは依存する Tokens モジュールなので、それもインストールする必要があります。
[設定]-> [URLエイリアス]には、パターと呼ばれるタブがあります。
「TAXONOMY TERM PATHS」のパターンを希望どおりに設定します。最後の値が[term:name]であることを確認してください。パスをcategory/carrotにする場合は、category/[term:name]として指定してください。
分類用語をすでに追加している場合は、URLエイリアスページのタブである「一括更新」を実行する必要があります。
これで、ページのカテゴリ/用語名にアクセスすると、子用語を含む用語の下のすべてのノードが表示されます。