получить условия - только высший уровень


Я пытаюсь получить только термин верхнего уровня:

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

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

Но этот запрос также возвращает все дочерние термины, я перепробовал все, но он тоже всегда получает дочерние термины.

Я пытаюсь с последних 5 часов и не могу найти, что не так в моем коде, это ошибка WP или в моем коде что-то не так?

Спасибо за помощь.

Author: Aryan, 2014-08-14

1 answers

Ваш код верен, ну, почти верен. На первый взгляд, должен признаться, я тоже это пропустил.

В вашем коде есть две синтаксические ошибки. Если присмотреться, 'parent ' и 'parent' - это не одно и то же. Вы не должны оставлять пробелы между одинарными кавычками (') и аргументами.

Кроме того, вам не нужно добавлять , после вашего последнего аргумента.

Это должно сработать

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

РЕДАКТИРОВАТЬ 15-06-2016

Начиная с WordPress 4.5, синтаксис изменился на get_terms(). Параметр taxonomy теперь включен в массив или аргументы, поэтому новое использование будет выглядеть следующим образом

$args = [
    'taxonomy'     => 'my_tax',
    'parent'        => 0,
    'number'        => 10,
    'hide_empty'    => false           
];
$terms = get_terms( $args );
 24
Author: Pieter Goosen, 2016-11-26 13:22:54