it-swarm.com.de

get_terms - nur oberste Ebene

Ich versuche nur Top Level zu bekommen:

$cat_args = array(
    'parent '       => 0,
    'number'        => 10,
    'hide_empty'    => false,           
);

$categories = get_terms( 'question_category' , $cat_args); 

Aber diese Abfrage gibt auch alle Childterms zurück. Ich habe alles versucht, aber es werden immer auch Childterms ausgegeben.

Ich versuche es seit 5 Stunden und kann nicht herausfinden, was in meinem Code falsch ist. Ist dies ein WP Fehler oder stimmt etwas in meinem Code nicht?

Danke fürs Helfen.

12
Aryan

Ihr Code ist korrekt, fast korrekt. Auf den ersten Blick muss ich gestehen, ich habe es auch verpasst.

Sie haben zwei Syntaxfehler in Ihrem Code. Wenn Sie genau hinschauen, ist 'parent ' und 'parent' nicht dasselbe. Zwischen einfachen Anführungszeichen (') und Argumenten dürfen keine Leerzeichen stehen.

Außerdem müssen Sie nach Ihrem letzten Argument keinen , hinzufügen.

Das sollte funktionieren

$cat_args = array(
    'parent'        => 0,
    'number'        => 10,
    'hide_empty'    => false           
);

EDIT 15-06-2016

Ab WordPress 4.5 wurde die Syntax für get_terms() geändert. Der Parameter taxonomy ist jetzt im Array oder in den Argumenten enthalten, sodass die neue Verwendung so aussieht

$args = [
    'taxonomy'     => 'my_tax',
    'parent'        => 0,
    'number'        => 10,
    'hide_empty'    => false           
];
$terms = get_terms( $args );
19
Pieter Goosen