Come posso ottenere solo le condizioni genitore?


19

Esiste un modo per ottenere solo termini principali dalla tassonomia o categoria personalizzata?

Risposte:


38

Sì, basta passare il parametro parent a get_terms quando lo chiami, come ha sottolineato Michael.

Da WP 4.5 questo è l'uso raccomandato:

$myterms = get_terms( array( 'taxonomy' => 'taxonomy_name', 'parent' => 0 ) );

Prima di WP 4.5 questo era l'uso predefinito:

$myterms = get_terms( 'taxonomy_name_here', array( 'parent' => 0 ) );

Restituirà tutti i termini che hanno un valore genitore di 0, ad es. termini di alto livello.


Restituisce un array vuoto per le tassonomie personalizzate :(
Mamaduka,

I termini di quella tassonomia sono associati a un post (o tipo personalizzato)? In caso contrario, dovrai passare il hide_emptyparametro, impostandolo 0anche su, in modo da poter vedere i termini attualmente non utilizzati.
t31os,

Nota che questo otterrà solo il livello genitore 1, il termine "madre". Per recuperare tutti gli antenati, usa get_ancestors(TERM_ID, TAXONOMY, 'taxonomy') developer.wordpress.org/reference/functions/get_ancestors
jave.web


2

per i modelli di email di woocommerce utilizzare quanto segue:

$terms = get_the_terms( $_product->id , 'product_cat');
    if($terms) {
        foreach( $terms as $term ) {
            $term = get_term_by("id", $term->parent, "product_cat");
            if ($term->parent > 0) {
                $term = get_term_by("id", $term->parent, "product_cat");
            }
            $cat_obj = get_term($term->term_id, 'product_cat');
            $cat_name = $cat_obj->name;
        }
    }
echo '<br />('. $cat_name . ')';

5
si prega di aggiungere alcune spiegazioni su come il codice potrebbe risolvere la domanda. OP non ha fatto domande sui modelli di e-mail di woocommerce.
iEmanuele,

1
 $archive_cats= get_terms( 'archivecat', 'orderby=count&hide_empty=0&parent=0' );

3
In che modo differisce dalla risposta (già accettata) proposta più di due anni fa?
tfrommen

hai visto commenti sulla risposta (già accettata)? se non ci sono più risposte utili perché la domanda è ancora aperta ?!
Ashraf Mohammed,

C'era una sola domanda per quanto riguarda i termini che non venivano visualizzati, che non era correlata alla domanda originale, ho affrontato la questione in un commento di risposta (poiché non aveva alcuna attinenza con la validità o la correttezza della risposta già fornita).
t31os,

1
Si prega di indirizzarlo in una modifica. Spiega il tuo codice.
Kaiser
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.