web-dev-qa-db-fra.com

get_terms - uniquement le niveau supérieur

J'essaie d'obtenir uniquement le terme de premier niveau:

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

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

Mais cette requête renvoie également tous les fils de l'enfant, j'ai tout essayé, mais elle contient toujours des termes enfants.

J'essaie depuis 5 heures et je ne trouve pas ce qui ne va pas dans mon code. S'agit-il d'un bogue WP ou d'un problème dans mon code?

Merci pour ton aide.

12
Aryan

Votre code est correct, presque correct. À première vue, je dois avouer que cela m'a aussi manqué.

Vous avez deux erreurs de syntaxe dans votre code. Si vous regardez de près, 'parent ' et 'parent' ne sont pas identiques. Vous ne devez pas laisser d'espaces entre guillemets simples (') et arguments.

De plus, vous n'avez pas besoin d'ajouter un , après votre dernier argument.

Cela devrait marcher

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

EDIT 15-06-2016

A partir de WordPress 4.5, la syntaxe a changé pour get_terms(). Le paramètre taxonomy est maintenant inclus dans le tableau ou les arguments, ainsi la nouvelle utilisation ressemblera à ceci

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