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.