get_terms - nur oberste Ebene

13

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 nicht stimmt. Ist dies ein WP-Fehler oder stimmt etwas in meinem Code nicht?

Danke fürs Helfen.

arisch
quelle
Ich denke, Sie meinen nur Top-Level-Begriffe aus Ihrer Taxonomiequestion_category
Pieter Goosen
Ja, ich meine das
Aryan

Antworten:

21

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 hinsehen, 'parent 'und 'parent'nicht das gleiche ist. Sie sollten keine Leerzeichen zwischen einfachen Anführungszeichen ( ') und Argumenten lassen.

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

Das sollte funktionieren

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

EDIT 15-06-2016

Ab WordPress 4.5 hat sich die Syntax für geändert get_terms(). Der taxonomyParameter 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 );
Pieter Goosen
quelle
2
Nur ein Hinweis: Sie müssen nicht müssen hinzufügen ,nach dem letzten Array - Argumente JEDOCH ist es eine gute Praxis zu tun ;)
jave.web
@ jave.web Danke dafür, das weiß ich, das mache ich einfach nicht immer. ;-)
Pieter Goosen
@ jave.web Es ist eigentlich nicht gute Praxis eine hinzuzufügen , ,nach dem letzten Array - Argumente, da diese anderen Sprachen zu brechen , die als tolerant redundanten Kommata Arent. Z.B. JSON bricht ab, wenn Sie dies tun.
Mikepote
2
@Mikepote das ist eigentlich nicht wahr, es ist eine gute Übung und wenn Sie versuchen, Code von einer Sprache in eine andere zu verschieben, sollten Sie die richtige Konvertierung / ter verwenden. Es ist so, als ob Sie sagen, dass Sie keine Objekterstellungen und / oder Variablen als Argumente haben können, denn wenn Sie JSON kopieren / einfügen, bricht das ... Es ist eine gute Praxis, auch in JavaScript, daher wurde die Unterstützung später überall hinzugefügt. Das Kopieren / Einfügen in dieselbe Sprache und in dasselbe Projekt ist viel wahrscheinlicher und das Hinzufügen des nachgestellten Kommas verhindert, wenn möglich, häufige Verzögerungen - das ist nicht nur aus meiner Erfahrung, sondern auch aus der Erfahrung anderer.
jave.web
@Mikepote Um an den Aussagen von jave.web festzuhalten, ist dies nicht nur eine gute Praxis, sondern speziell in den WordPress-PHP-Codierungsstandards empfohlen, denen im Idealfall jeder WordPress-spezifische Code folgen sollte: make.wordpress.org/core/handbook/best- Übungen /…
Sarah Lewis