Wie kann ich nur übergeordnete Begriffe erhalten?


19

Gibt es eine Möglichkeit, nur übergeordnete Begriffe aus benutzerdefinierten Taxonomien oder Kategorien abzurufen?

Antworten:


38

Ja, übergeben Sie einfach den übergeordneten Parameter an, get_termswenn Sie ihn aufrufen, wie Michael betont hat.

Seit WP 4.5 ist dies die empfohlene Verwendung:

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

Vor WP 4.5 war dies die Standardverwendung:

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

Gibt alle Begriffe zurück, die einen übergeordneten Wert von haben 0, z. Top-Level-Begriffe.


Es gibt ein leeres Array für benutzerdefinierte Taxonomien zurück :(
Mamaduka

Sind die Begriffe in dieser Taxonomie mit einem Beitrag (oder benutzerdefinierten Typ) verknüpft? Ist dies nicht der Fall, müssen Sie den hide_emptyParameter weitergeben und ebenfalls auf festlegen, damit die 0aktuell nicht verwendeten Begriffe angezeigt werden.
02.08.11,

Beachten Sie, dass dies nur Elternebene 1, den Begriff "Mutter", erhält. Zum Abrufen aller Vorfahren, Verwendung get_ancestors(TERM_ID, TAXONOMY, 'taxonomy') developer.wordpress.org/reference/functions/get_ancestors
jave.web


2

Verwenden Sie für Woocommerce-E-Mail-Vorlagen Folgendes:

$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
Fügen Sie bitte eine Erklärung hinzu, wie Ihr Code die Frage lösen könnte. OP hat keine Frage zu Woocommerce-E-Mail-Vorlagen gestellt.
Emmanuele

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

3
Inwiefern unterscheidet sich diese Antwort von der (bereits akzeptierten) Antwort, die vor mehr als zwei Jahren vorgeschlagen wurde?
24.

Haben Sie Kommentare zu der (bereits akzeptierten) Antwort gesehen? Wenn keine Antworten mehr nützlich sind, warum ist die Frage noch offen ?!
Ashraf Mohammed

Es gab eine einzige Frage zu Begriffen, die nicht auftauchten, die nichts mit der ursprünglichen Frage zu tun hatten. Ich ging auf dieses Problem in einem Antwortkommentar ein (da dies keinen Einfluss auf die Gültigkeit oder Richtigkeit der bereits gegebenen Antwort hatte).
28.

1
Bitte adressiere das in einer Bearbeitung. Erkläre deinen Code.
Kaiser
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.