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

Решаем задачу вывода суммарного количества статей во всех дочерних категориях 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.

Дмитрий Иванов

/ 6 июля в 13:17 / Посты,

Создаю веб-проекты, придумываю идеи, занимаюсь разработкой, оптимизирую и продвигаю сайты. Первые шаги в этом направлении сделал в 2008 году.

Наверх ↑

Leave a Reply

Your email address will not be published. Required fields are marked *

Вы можете использовать HTML теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>