ビューで語彙のルート用語のみをフィルター処理するにはどうすればよいですか?


15

私は次のように構成された語彙を持っています:

  • ルートアルファ
    • 用語アルファ1
    • 用語アルファ2
      • サブタームアルファ1
  • ルートベータ
  • ルートガンマ
    • タームガンマ1
    • タームガンマ2

語彙のルート用語のみを表示するようにビューをフィルターするにはどうすればよいですか?現在、私のビューはルート用語と子を表示しています(用語* *)

それから先は、引数「ルートアルファ」(またはそのtid、またはコンテキストからのもの)を渡し、「ルートアルファ」の直接の子のみにフィルターをかけたいと思います。(用語アルファ*)。それ以上の深さまでフィルタリングすると、ボーナスになります。

語彙が次のようになるように、すべての用語を1つのルート用語に入れると、機能するようになります。

  • 真の根
    • ルートアルファ
      • 用語アルファ1
      • 用語アルファ2
        • サブタームアルファ1
    • ルートベータ
    • ルートガンマ
      • タームガンマ1
      • タームガンマ2

どちらの語彙構造が正しいのかわかりませんが、これを書くと、ビューでこれを理解すること以外に読むべきことがあることに気づきました。

回答:


13

ルート用語のみを表示するために、誰かを確実にフェイスパームにするソリューションがあります(少なくとも私はそれをしました):

  1. 分類法ビューにコンテキストフィルターを追加する
  2. 分類用語:親用語を選択します。

    次のように設定しますフィルター値が使用できない場合デフォルト値を提供する - 固定値。値を0に設定します。

ええ、それだけです。ここには親のない用語には0があります。taxonomy_term_hierarchyテーブルの親フィールドの説明を参照してください。

主キー:用語の親の{taxonomy_term_data} .tid。0は親がないことを示します。


ありがとう ただ、誰かがこれを行うとき、TID 0とは用語がないので、あなたは、バリデータとして「分類学の用語」を指定することはできませんこれで立ち往生した場合、ノートなど
Phizes

2

静的な分類構造を持っている場合は、filter criterion: Content: Has taxonomy terms (with depth)この場所でフィルタリングすることができ、フィルタリングするルート用語のみを選択できます。

フィルター基準:コンテンツ:分類用語があります(詳細)

情報が役立つことを願っています。


分類構造は静的ではないため、引数を渡してからルート用語の子にフィルターをかけることはできません。
ファイズ

@ moon.watcher:タクソノミー用語を使用するにはどうすればよいですか?
ソクラティス

1

単純なフィルターと非静的分類構造を使用して行うこともできます。

  1. フィルター条件を追加します:分類用語:親ID
  2. 「次と等しい」演算子を選択し、値に「NULL」を入力します

ここに画像の説明を入力してください

分類のルート用語のみが表示され、後で分類構造を変更しても機能します...


はい、@ scandelは非静的な分類構造を処理しますが、質問で示されているようにツリーをさらに下に進むことは処理しません、受け入れられた答えはそうします。
Phizes

0

ページでをWHERE parent = 0使用db_query()して選択できます。


「in your page」の意味がわかりません。説明してください。また、ビューは自分でクエリを実行していませんので、クエリを変更する必要はありませんか?
Phizes
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.