Показываем суммарное количество статей во всех дочерних категориях Wordpress

Статьи 17.06.2022 (обновлено)

Решаем задачу вывода суммарного количества статей во всех дочерних категориях WordPress на фронтенд.

На отдельном клиентском сайте была небольшая задача вывода количества статей в сумме по всем дочерним категориям одного родителя.

Предположим у нас такая иерархия:

Cars-1 (всего статей — 0)
Cars-2 (всего статей — 4)
Cars-3 (всего статей — 3)
Cars-4 (всего статей — 3)

Нужно было показать сколько всего статей содержит Cars-1 включая Cars-2, Cars-3, Cars-4. Т.е. на выходе мы должны получить 10.

Это делается с использованием небольшой функции, которую можно добавить в functions.php и потом использовать где нужно на сайте:

function wp_get_cat_postcount($id) {
    $cat = get_category($id);
    $count = (int) $cat->count;
    $taxonomy = 'category';
    $args = array(
        'child_of' => $id,
    );
    $tax_terms = get_terms($taxonomy,$args);
    foreach ($tax_terms as $tax_term) {
        $count +=$tax_term->count;
    }

    return $count;
}

Теперь, в нужном месте нашего сайта мы добавляем такую строчку:

<?php echo wp_get_cat_postcount('1'); ?>

Мы указали ID рубрики ‘1’ и теперь у нас выведется количество статей во всех подкатегориях родителя.

Эту строчку можно вставить в любой файл темы, где вам нужно, например, index.php или archive.php.

Сергей Ермилов
Опубликовано 05.06.2020
Категория: Статьи
Теги:

Добавить комментарий

Ваш адрес email не будет опубликован.