Выводим количество записей в категориях/тегах, функция get_queried_object() и др.
Изначально хотел дописать хак в статью про функцию get_the_category но там и так уже достаточно много контента и примеров, поэтому не буду вас лишний раз запутывать. Суть сегодняшней задачи – посчитать и вывести на сайте количество постов в определенном разделе или по метке. То есть, например, заходите в архив категории «Новости», и сверху отображается соответствующе количество заметок в нем. Аналогичную фишку реализовал и для меток, потому как сниппет получился универсальным. Финальный код – в самом конце, в начале немного предыстории.
Если вы работаете с Вордпресс как редактор, то наверняка в виджетах видели соответствующие настройки для отображения числа записей.
Что касается коддинга, то тут, как я понимаю, есть несколько путей. Во-первых, можно использовать функцию get_category, которая помогает считывать инфу о текущей открытой рубрике.
if (is_category()) { $cur_cat = get_category(get_query_var('cat')); print_r( $cur_cat); echo $cur_cat->count; } |
Она работает на основе другой функции get_term, что в свою очередь выдает нам инфу о любой таксономии, например, тегах.
$term = get_term( $term_id, $taxonomy ); |
В принципе, сейчас допускается указывать лишь $term_id в этой конструкции, а второй параметр стал не обязательный. На выходе получаете следующий объект:
object(WP_Term) (11) { ["term_id"]=> //int ["name"]=> //string ["slug"]=> //string ["term_group"]=> //int ["term_taxonomy_id"]=> //int ["taxonomy"]=> //string ["description"]=> //string ["parent"]=> //int ["count"]=> // int ["filter"]= //string ["meta"]= array(0) {} //an array of meta fields. } |
Здесь, как видите, тоже есть параметр count.
А теперь наконец-то вариант, который использовал я — это еще более универсальная функция get_queried_object. Она возвращает полную информацию о текущем объекте:
- категориях;
- постах;
- авторах;
- метках и т.п.;
Во всех случаях на выходе получите разные объекты (WP_Term, WP_Post), можете потестировать следующий код в шапке сайта и посмотреть какие результаты будут выводиться:
$some_object = get_queried_object(); print_r( $some_object ); |
Таким образом, мы подобрались к самому главному – отображению количества статей в категориях и тегах:
if ((is_category()) || (is_tag())) { $categories = get_queried_object(); $count = $categories->count; $taxonomy = $categories->taxonomy; $args = array( 'child_of' => $categories->term_id, ); $tax_terms = get_terms($taxonomy, $args); foreach ($tax_terms as $tax_term) { $count +=$tax_term->count; } echo $count; } |
Хак универсальный, вроде бы, все работает корректно. Здесь мы не просто считываем значение count одной таксономии, но также проверяем наличие подрубрик, а затем узнаем количество постов и там (если они есть). В противном случае, результаты бы не учитывали иерархию.
Теоретически, наверное, можно было использовать здесь и get_term – мне ведь по сути нужны только данные рубрик/меток. Если есть что дополнить или исправить – пишите.
Блог Wordpress Inside поможет вам научиться работать в вордпресс, закрепить и расширить имеющиеся знания. Плагины и шаблоны, разные хаки и функции wp, оптимизация и безопасность системы – все это и намного больше вы сможете найти на страницах нашего проекта!
Если хотите быстро и оперативно получать последние новости и статьи, то рекомендуем подписаться на обновления блога:
- Плагіни для створення стрічки новин з біжучим рядком в WordPress
- Як змінити розміщення кнопки оформлення замовлення в WooCommerce
- Плагін WHWS Display In Stock Products First – відображення товарів в наявності першими
- Підписка MonsterONE: чи варто використовувати цей сервіс у 2023 році? (+5 продуктів, які треба скачати в першу чергу)
- Онлайн генератор ссылок на мессенджеры для WordPress и не только
- Вкладки в Woocommerce товарах — как убрать, добавить, изменить (сниппеты + плагин)
- Вывод Woocommerce товаров на странице с Elementor с помощью плагина
- WooCommerce (45)
- Безопасность (12)
- Видео (6)
- Виджеты (28)
- Возможности (141)
- Вопрос-ответ (6)
- Начинающим (52)
- Новости (46)
- Оптимизация (23)
- Плагины (246)
- Сервисы (86)
- Хаки и секреты (87)
- Шаблоны (45)
- Оптимизируем WordPress header и удаляем лишний код
(5,26 из 7, голосов - 42)
- Как создать пункт меню без ссылки в wordpress
(6,39 из 7, голосов - 23)
- Добавление кнопки Вконтакте, Facebook и Twitter в wordpress блог
(6,10 из 7, голосов - 20)
- Выполнение jQuery скриптов при выборе вариаций товаров в WooCommerce
(4,08 из 7, голосов - 25)
- Хаки для вариаций товаров в WooCommerce
(5,29 из 7, голосов - 17)
- Вывод текста в блоге только на главной
(6,85 из 7, голосов - 13)
- 17 полезных приемов и хаков для WordPress
(5,57 из 7, голосов - 14)

- Дизайн Мания - о веб-дизайне и не только.
- Tod's Blog - все про заработок онлайн.
- Вебдванольные заметки - обзоры веб-сервисов.
- Раскройте секреты своего смартфона: исследуйте датчики внутри
- Топ-3 видеокарты среднего класса от AMD: зачем платить больше?
- Доработка фильтра для повышения конферсии
- Зачем нужен домен
- Переваги застосування технології розумний будинок
- Дизайн сайта
- DLE (DataLife Engine) — движок для сателлитов
- Играть бесплатно в игровые автоматы без регистрации