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.