web-dev-qa-db-ja.com

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

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

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

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

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

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

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

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

15
Phizes

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

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

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

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

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

13
Scorchio

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

filter criterion: Content: Has taxonomy terms (with depth)

情報がお役に立てば幸いです。

2
cigotete

単純なフィルターと非静的な分類構造でそれを行うこともできます:

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

enter image description here

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

1
scandel

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

0
Ahmed