web-dev-qa-db-ja.com

URLの複数の分類法でフィルタリングする

複数の分類用語の組み合わせに基づいて、複数の語彙でノードをビューに表示する必要があります。たとえば、自動車販売の場合、1つの語彙で訪問者はmodelを1つ選択し、もう1つはcolorを選択できます。

私のカスタムパスは次のようになります。

/sales/cars/models/%            // taxonomy view
/sales/cars/colors/%            // taxonomy view

/sales/cars/model/%/color/%     // taxonomy filter

URL:

mydomain.tld/sales/cars/model/land-rover/color/red

フィルターを公開することでこれができると思いますが、どうやって?

3
mate64

ビューページを作成するときに、パスを/sales/cars/model/%/color/%に設定します

コンテキストフィルターを追加:

2つのコンテキストフィルターを作成する必要があります。両方ともContent: Has taxonomy term idなので、以下のプロセスを2回繰り返します。

contextual filter taxonomy term id

最初のコンテキストフィルターの構成では、以下を設定する必要があります。

"フィルター値IS使用不可の場合"->デフォルト値を提供-> URLからの生の値->パスコンポーネント

contextual filter taxonomy term id options raw value from url

また、URLがシステムパスではなくエイリアスの場合は、[パスエイリアスを使用する]をオンにします。

contextual filter taxonomy term id use path alias

次に、それを検証する必要があります。同じ構成オーバーレイ画面で

「フィルター値IS AVAILABLE OR A DEFAULT IS PROVIDED

「検証基準を指定する」にチェックを入れます

contextual filter taxonomy validation criteria

バリデーターの「分類用語」を選択します。各コンテキストフィルターの適切な語彙を確認し、最後に[フィルター値のタイプ]を[用語名を用語IDに変換]に設定し、[URL内のダッシュを用語名フィルター値のスペースに変換する]チェックボックスをオンにします。

contextual filter taxonomy term id custom filter

「フィルター値が検証されない場合に実行するアクション」を必要に応じて設定します。

8
Beebee