Выводим количество записей в категориях/тегах, функция 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, оптимизация и безопасность системы – все это и намного больше вы сможете найти на страницах нашего проекта!
Если хотите быстро и оперативно получать последние новости и статьи, то рекомендуем подписаться на обновления блога:
- Як сховати відсутні товари в Woocommerce шорткодах та схожих товарах
- Сервіс AdMaven + плагін для монетизації трафіка на WordPress сайтах
- Плагіни для створення стрічки новин з біжучим рядком в WordPress
- Як змінити розміщення кнопки оформлення замовлення в WooCommerce
- Плагін WHWS Display In Stock Products First – відображення товарів в наявності першими
- Підписка MonsterONE: чи варто використовувати цей сервіс у 2023 році? (+5 продуктів, які треба скачати в першу чергу)
- Онлайн генератор ссылок на мессенджеры для WordPress и не только
- WooCommerce (46)
- Безопасность (12)
- Видео (6)
- Виджеты (28)
- Возможности (141)
- Вопрос-ответ (6)
- Начинающим (52)
- Новости (46)
- Оптимизация (23)
- Плагины (246)
- Сервисы (87)
- Хаки и секреты (87)
- Шаблоны (45)
- Оптимизируем WordPress header и удаляем лишний код
(5,19 из 7, голосов - 43)
- Как создать пункт меню без ссылки в wordpress
(6,39 из 7, голосов - 23)
- Добавление кнопки Вконтакте, Facebook и Twitter в wordpress блог
(6,14 из 7, голосов - 21)
- Хаки для вариаций товаров в WooCommerce
(4,88 из 7, голосов - 24)
- Выполнение jQuery скриптов при выборе вариаций товаров в WooCommerce
(3,96 из 7, голосов - 26)
- Размеры изображений в WordPress — как изменить, добавить свои и удалить лишние
(3,61 из 7, голосов - 28)
- Вывод текста в блоге только на главной
(6,85 из 7, голосов - 13)

- Дизайн Мания - о веб-дизайне и не только.
- Tod's Blog - все про заработок онлайн.
- Вебдванольные заметки - обзоры веб-сервисов.
- Найбільш очікувані новинки MMORPG ігор в 2025 році
- Советы по выбору холодильника LG с технологией No Frost
- Зачем нужны Wi-Fi ретрансляторы и как выбрать подходящую модель
- Введение в онлайн-казино Slotor777: многообразие игр и привлекательные бонусы
- Необходимость использования облачного хранилища в наше время, что важно и как выгодно?
- Спрощення процесу звітності за допомогою програми BAS Бухгалтерія
- Технологія підключення інтернету GPON та її переваги
- За що гравці найбільше цінують Lineage 2