Come filtrare solo i termini radice in un vocabolario in una vista?


15

Ho un vocabolario strutturato così:

  • Alpha radice
    • Termine Alpha 1
    • Termine Alpha 2
      • Sottotermina Alpha 1
  • Beta radice
  • Gamma di radici
    • Termine gamma 1
    • Termine gamma 2

Come filtrare la vista per mostrare solo i termini di base del vocabolario? Attualmente il mio punto di vista mostra i termini della radice e i bambini (Termine * *)

Andando avanti da questo vorrei passare l'argomento "Root Alpha" (o la sua marea, o qualsiasi altra cosa da un contesto) e quindi filtrarlo solo ai figli diretti di "Root Alpha". (Termine Alpha *). Filtrare a una profondità maggiore di quella sarebbe un bonus.

Posso farlo funzionare se inserisco tutti i miei termini in un termine radice in modo che il vocabolario diventi:

  • Radice vera
    • Alpha radice
      • Termine Alpha 1
      • Termine Alpha 2
        • Sottotermina Alpha 1
    • Beta radice
    • Gamma di radici
      • Termine gamma 1
      • Termine gamma 2

Non sono sicuro di quale struttura del vocabolario sia più corretta, scrivere questo mi ha fatto capire che ho qualche lettura da fare oltre a capire questo con le viste.

Risposte:


13

Per visualizzare solo i termini di root, ho una soluzione che sicuramente renderà qualcuno facepalm (almeno l'ho fatto):

  1. Aggiungi un filtro contestuale alla vista tassonomia
  2. Seleziona Termine tassonomia: termine principale .

    Impostalo in questo modo: Quando un valore di filtro non è disponibile : Fornisci valore predefinito - Valore fisso . Impostare il valore su 0 .

Sì, tutto qui. I termini senza genitore hanno 0 qui. Vedi la descrizione del campo genitore della tabella taxonomy_term_hierarchy:

Chiave primaria: {taxonomy_term_data} .tid del genitore del termine. 0 indica nessun genitore.


Grazie mille, sicuramente mi sono messo di fronte per questo. Proprio come una nota se qualcuno dovesse rimanere bloccato con questo, non è possibile specificare "Termine tassonomia" come validatore quando lo si fa, poiché non esiste un termine con
marea

2

se hai una struttura di tassonomia statica, puoi filtrare usando filter criterion: Content: Has taxonomy terms (with depth)quindi in questo posto puoi selezionare solo i termini di root per filtrare:

criterio di filtro: Contenuto: ha termini di tassonomia (con profondità)

Spero che le informazioni siano utili.


La struttura della tassonomia non sarà statica e questo non mi consentirebbe di passare un argomento e quindi di filtrare i figli di un termine radice.
Phizes,

@ moon.watcher: come posso usare il termine tassonomia (con profondità)? Sto selezionando solo i genitori ma anche i bambini appaiono.
sokratis,

1

Puoi anche farlo con un semplice filtro e una struttura di tassonomia non statica:

  1. Aggiungi un criterio di filtro: Termine di tassonomia: ID principale
  2. Seleziona l'operatore "È uguale a" e riempi il valore con "NULL"

inserisci qui la descrizione dell'immagine

Visualizzerà solo i termini di base della tua tassonomia e funzionerà ancora se cambi la struttura della tassonomia in un secondo momento ...


Sì, @scandel gestirà una struttura di tassonomia non statica, ma non gestirà andare oltre l'albero come indicato nella domanda, la risposta accettata sì.
Phizes,

0

Puoi selezionarlo con WHERE parent = 0usando db_query()nella tua pagina.


Non sono sicuro di cosa intendi per "nella tua pagina", per favore spiegami? Inoltre non sto eseguendo la query da solo, viste è, quindi non dovrei piuttosto modificare la query?
Phizes,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.