Wie filtere ich in einer Ansicht nur die Stammbegriffe in einem Vokabular?

15

Ich habe folgenden Wortschatz:

  • Wurzel Alpha
    • Term Alpha 1
    • Term Alpha 2
      • Subterm Alpha 1
  • Root Beta
  • Wurzel-Gamma
    • Term Gamma 1
    • Term Gamma 2

Wie filtere ich die Ansicht, um nur die Grundbegriffe des Wortschatzes anzuzeigen? Momentan werden in meiner Ansicht sowohl die Stammbegriffe als auch die untergeordneten Begriffe angezeigt (Begriff * *)

Abschließend möchte ich das Argument 'Root Alpha' (oder dessen Tid oder was auch immer aus einem Kontext) übergeben und es dann nur zu den direkten Kindern von 'Root Alpha' filtern lassen. (Ausdruck Alpha *). Noch weiter zu filtern wäre ein Bonus.

Ich kann es zum Laufen bringen, wenn ich alle meine Begriffe in einen Stammbegriff füge, sodass das Vokabular wie folgt aussieht:

  • Wahre Wurzel
    • Wurzel Alpha
      • Term Alpha 1
      • Term Alpha 2
        • Subterm Alpha 1
    • Root Beta
    • Wurzel-Gamma
      • Term Gamma 1
      • Term Gamma 2

Ich bin mir nicht sicher, welche Vokabularstruktur korrekter ist, und als ich dies schrieb, wurde mir klar, dass ich etwas zu lesen habe, abgesehen davon, dass ich dies anhand von Ansichten herausfinden muss.

Phizes
quelle

Antworten:

13

Für die Anzeige nur der Stammbegriffe habe ich eine Lösung, die sicherlich jemanden facepalm machen wird (zumindest habe ich das getan):

  1. Fügen Sie Ihrer Taxonomieansicht einen Kontextfilter hinzu
  2. Wählen Sie Taxonomiebegriff: Elternbegriff .

    Richten Sie es folgendermaßen ein: Wenn kein Filterwert verfügbar ist : Standardwert bereitstellen - Festwert . Setzen Sie den Wert auf 0 .

Ja, das ist alles. Begriffe ohne Eltern haben hier 0. Siehe die Beschreibung des übergeordneten Felds der Tabelle taxonomy_term_hierarchy:

Primärschlüssel: Die {taxonomy_term_data} .tid des übergeordneten Begriffs. 0 bedeutet, dass kein Elternteil vorhanden ist.

Scorchio
quelle
Vielen Dank, auf jeden Fall facepalmed mich für diesen einen. Nur als Hinweis, wenn jemand damit nicht weiterkommen sollte, können Sie bei dieser
Aktion
2

Wenn Sie eine statische Taxonomiestruktur haben, können Sie mithilfe von filtern. An filter criterion: Content: Has taxonomy terms (with depth)dieser Stelle können Sie nur die zu filternden Stammbegriffe auswählen:

Filterkriterium: Inhalt: Hat taxonomische Begriffe (mit Tiefe)

Ich hoffe, Informationen sind nützlich.

Zigotete
quelle
Die Taxonomiestruktur wird nicht statisch sein, und dies würde es mir nicht ermöglichen, ein Argument zu übergeben und dann an die untergeordneten Elemente eines Stammbegriffs zu filtern.
Phizes
@ moon.watcher: Wie kann ich den Taxonomiebegriff (mit Tiefe) verwenden? Ich wähle nur die Eltern aus, aber die Kinder erscheinen auch.
Sokratis
1

Sie können dies auch mit einem einfachen Filter und einer nicht statischen Taxonomiestruktur tun:

  1. Hinzufügen eines Filterkriteriums: Taxonomiebegriff: Eltern-ID
  2. Wählen Sie den Operator "Ist gleich" und füllen Sie den Wert mit "NULL"

Bildbeschreibung hier eingeben

Es werden nur die Stammbegriffe Ihrer Taxonomie angezeigt und es funktioniert auch, wenn Sie die Taxonomiestruktur später ändern ...

Scandel
quelle
Ja, @scandel würde eine nicht-statische Taxonomiestruktur behandeln, aber es würde nicht weiter unten im Baum gehen, wie in der Frage dargelegt, die akzeptierte Antwort tut es.
Phizes
0

Sie können es wählen mit WHERE parent = 0Verwendung db_query()auf Ihrer Seite.

Ahmed
quelle
Ich bin mir nicht sicher, was Sie mit "auf Ihrer Seite" meinen, bitte erklären Sie? Außerdem führe ich die Abfrage nicht selbst aus, wie es in Ansichten der Fall ist. Müsste ich die Abfrage also nicht ändern?
Phizes