Jak mogę uzyskać tylko warunki dla rodziców?


19

Czy jest jakiś sposób na uzyskanie tylko warunków nadrzędnych z niestandardowej taksonomii lub kategorii?

Odpowiedzi:


38

Tak, po prostu podaj parametr nadrzędny, get_termskiedy go wywołujesz, jak zauważył Michael.

Od wersji WP 4.5 jest to zalecane użycie:

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

Przed WP 4.5 było to domyślne użycie:

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

Zwróci wszystkie warunki, które mają wartość nadrzędną 0, tj. warunki najwyższego poziomu.


Zwraca pustą tablicę dla taksonomii niestandardowych :(
Mamaduka

Czy warunki w tej taksonomii są powiązane z postem (lub typem niestandardowym)? Jeśli nie, musisz przekazać hide_emptyparametr, ustawiając go 0również na, abyś mógł zobaczyć warunki, które nie są obecnie używane.
t31os

Pamiętaj, że otrzyma to tylko poziom nadrzędny 1, termin „matka”. Aby odzyskać wszystkich przodków, użyj get_ancestors(TERM_ID, TAXONOMY, 'taxonomy') developer.wordpress.org/reference/functions/get_ancestors
jave.web


2

w przypadku szablonów wiadomości e-mail woocommerce użyj:

$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
dodaj wyjaśnienie, w jaki sposób Twój kod może rozwiązać pytanie. OP nie zadał pytania o szablony e-mail woocommerce.
iEmanuele

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

3
Czym różni się ta (już zaakceptowana) odpowiedź zaproponowana ponad dwa lata temu?
tfrommen

widziałeś komentarze do (już zaakceptowanej) odpowiedzi? jeśli nie ma więcej odpowiedzi, dlaczego pytanie wciąż się otwiera ?!
ashraf mohammed

Było jedno zapytanie dotyczące terminów, które się nie wyświetlały, które nie było związane z pierwotnym pytaniem. Odpowiedziałem na to pytanie w komentarzu do odpowiedzi (ponieważ nie miało to wpływu na ważność lub poprawność już udzielonej odpowiedzi).
t31os

1
Proszę rozwiązać to w edycji. Wyjaśnij swój kod.
kaiser
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.