get_terms - лише верхній рівень


13

Я намагаюся отримати лише термін верхнього рівня:

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

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

Але цей запит також повертає всі умови життя, я намагався все, але він також завжди отримував дочірні терміни.

Я намагаюся з останніх 5 годин і не можу знайти що не так у моєму коді, це помилка WP чи щось не в моєму коді?

Дякуємо за допомогу.


Я думаю, ви маєте на увазі лише найвищі терміни з вашої таксономіїquestion_category
Пітер Гусен

Так, я маю на увазі це
Aryan

Відповіді:


21

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

У вашому коді є дві синтаксичні помилки. Якщо уважно придивитися, '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 );

2
Лише зауваження: вам не потрібно додавати ,після останнього аргументу масиву, ТАКЕ, це хороша практика для цього ;)
jave.web

@ jave.web Спасибі за це, я знаю це, я просто не завжди так роблю. ;-)
Пітер Гусен

@ jave.web Насправді не правильно додавати ,аргумент після останнього аргументу, оскільки це порушить інші мови, які не є толерантними до зайвих коми. Напр. JSON зламається, якщо ви це зробите.
Мікропот

2
@Mikepote, що насправді не відповідає дійсності, це добра практика, і якщо ви намагаєтеся перенести код з однієї мови на іншу, слід скористатися належним перетворенням / ter. Це як би сказати, що ви не можете створювати об'єкти та / або змінні як аргументи, тому що якщо ви копіюєте / вставляєте, це порушує JSON ... Це є хорошою практикою навіть у JavaScript, тому підтримка додається пізніше скрізь. Копіювати / вставляти всередину однієї мови та проекту є набагато більш імовірним, а додавання кома в кінці, якщо можливо, запобігає звичайним уповільненням - це не лише з мого досвіду, але й з досвіду інших.
jave.web

@Mikepote Щоб дотримуватися того, що говорить jave.web, це не лише добра практика, але спеціально рекомендується в Стандартах кодування WordPress PHP, яким в ідеалі повинен керуватися
Сара Льюїс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.