get_terms - solo nivel superior

8

Estoy intentando obtener solo un término de nivel superior:

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

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

Pero esta consulta también devuelve todos los childterms, intenté todo, pero siempre obtuve términos secundarios también.

Lo he intentado desde las últimas 5 horas y no puedo encontrar el error en mi código. ¿Se trata de un error de WP o hay algún problema en mi código?

Gracias por ayudar.

    
pregunta Aryan 14.08.2014 - 13:31

1 respuesta

14

Tu código es correcto, bueno, casi correcto. A primera vista, debo confesar que también lo extrañé.

Tienes dos errores de sintaxis en tu código. Si te fijas bien, 'parent ' y 'parent' no son lo mismo. No debe dejar espacios en blanco entre comillas simples ( ' ) y argumentos.

Además, no es necesario que agregue , después de su último argumento.

Esto debería funcionar

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

EDITAR 15-06-2016

A partir de WordPress 4.5, la sintaxis ha cambiado para get_terms() . El parámetro taxonomy ahora está incluido en la matriz o argumentos, por lo que el nuevo uso tendrá este aspecto

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

Lea otras preguntas en las etiquetas