Как получить список дочерних ID для указанной категории?

12 янв. 2011 г., 19:45:30
Просмотры: 1.26K
Голосов: 0

Я полагаю, что могу сделать это с помощью get_categories() или wp_list_categories(), передав параметр 'child_of', но это вернет гораздо больший набор данных, чем мне нужно.

Существует ли прямой запрос, который возвращает ID дочерних элементов для любой категории в виде простого списка (1,2,3,5 и т.д.)?

0
Все ответы на вопрос 1
8

Попробуйте это:

get_terms( 'category', "child_of=$parent&fields=ids" );
// должен вернуть массив, содержащий ID дочерних элементов термина $parent
12 янв. 2011 г. 19:51:37
Комментарии

@goldenapples: Это правильно? var_dump(get_terms('category', "child_of=1&fields=ids" ))? (возвращает array(0) { })

Scott B Scott B
12 янв. 2011 г. 19:58:05

Выглядит правильно, есть ли дочерние элементы для выборки? И не являются ли они пустыми? Посмотрите доступные аргументы здесь: http://core.trac.wordpress.org/browser/tags/3.0.4/wp-includes/taxonomy.php#L721

goldenapples goldenapples
12 янв. 2011 г. 20:05:31

просто добавьте 'show_empty=true' во второй параметр, я думаю.

sanchothefat sanchothefat
12 янв. 2011 г. 20:07:34

На самом деле, я думаю, проблема в том, что я передаю $parent с идентификатором категории, а не с term_id. Но разве они не должны быть одинаковыми? Я пытаюсь вывести все дочерние элементы категории "Без рубрики", у которой ID (tag_ID) равен 1.

Scott B Scott B
12 янв. 2011 г. 20:07:37

Как насчёт get_term_children(1,'category') ?

Scott B Scott B
12 янв. 2011 г. 20:21:55

Да, ID категории должен совпадать с её term_ID. Вы получаете ответ без ошибок, значит синтаксис верный. Попробуйте убрать аргумент child_of и посмотрите, что получится...

goldenapples goldenapples
12 янв. 2011 г. 20:22:21

get_term_children должен работать, но он все равно вернет все объекты, что, как я понял, вам не нужно. У get_terms есть параметр "fields", поэтому вы можете вернуть только идентификаторы.

goldenapples goldenapples
12 янв. 2011 г. 20:30:50

@GA, я нашел проблему. Ранее я установил фильтр list_terms_exclusions, который исключал дочерние элементы из рубрики "без рубрики" из результирующего набора.

Scott B Scott B
12 янв. 2011 г. 20:38:01
Показать остальные 3 комментариев