get_terms - somente nível superior

8

Estou tentando obter apenas um termo de nível superior:

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

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

Mas esta consulta retorna todos os childterms também, eu tentei de tudo, mas sempre obtém termos filho também.

Estou tentando desde as últimas 5 horas e não consigo encontrar o que está errado no meu código, isso é um bug do WP ou há algo errado no meu código?

Obrigado por ajudar.

    
por Aryan 14.08.2014 / 13:31

1 resposta

14

Seu código está correto, quase correto. Na primeira vista, devo confessar, também senti falta.

Você tem dois erros de sintaxe no seu código. Se você olhar de perto, 'parent ' e 'parent' não será o mesmo. Você não deve deixar espaços em branco entre aspas simples ( ' ) e argumentos.

Além disso, você não precisa adicionar , após seu último argumento.

Isso deve funcionar

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

EDIT 15-06-2016

A partir do WordPress 4.5, a sintaxe foi alterada para get_terms() . O parâmetro taxonomy está agora incluído na matriz ou args, portanto, o novo uso será semelhante a este

$args = [
    'taxonomy'     => 'my_tax',
    'parent'        => 0,
    'number'        => 10,
    'hide_empty'    => false           
];
$terms = get_terms( $args );
    
por Pieter Goosen 14.08.2014 / 13:59