Как определить, пуста ли категория?

26 янв. 2011 г., 00:38:06
Просмотры: 5.15K
Голосов: 3

Существует ли готовая функция или вызов, в который можно передать ID категории, чтобы определить, есть ли у категории дочерние записи?

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

Функция get_term() принимает ID термина и слаг таксономии. Она возвращает объект, содержащий "count" для этого термина.

$obj_term = get_term(123, 'your-taxonomy-slug');
echo $term->count;

Я не знаю ни одной вспомогательной функции, которая только считает записи в определенной категории.

26 янв. 2011 г. 01:12:03
Комментарии

Спасибо! Я также думал об использовании $obj= get_posts('category=n'); if($obj) {//есть дочерние!}. Один из вариантов более ресурсоемкий, чем другой?

Scott B Scott B
26 янв. 2011 г. 02:08:14

@Scott B - Думаю, get_term() вероятно быстрее. Оба выполняют запросы к БД, но get_posts() делает это через создание нового объекта wp_query и выполнение метода query, который запускает множество проверок и выглядит довольно окольным путем для получения нужной вам информации. Если вам нужен самый быстрый вариант, возможно стоит рассмотреть создание собственной вспомогательной функции? Довольно тривиально можно просто выполнить COUNT запрос, как мне кажется. Я даже удивлен, что в ядре WordPress нет специальной функции для этого!

MathSmath MathSmath
26 янв. 2011 г. 02:32:24

Это работает отлично. У меня есть список "Похожих записей" внизу страниц категорий, но так как я разрешаю отображение пустых категорий, я оборачиваю div со списком ссылок в эту проверку на наличие дочерних записей.

Scott B Scott B
26 янв. 2011 г. 04:49:39