Wie kann ich nur übergeordnete Begriffe erhalten?

19

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

Mamaduka
quelle

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.

t31os
quelle
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 . ')';
3243
quelle
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' );
Ashraf Mohammed
quelle
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