WooCommerce: как вывести иерархию категорий товаров в шаблоне темы

|

Диагностика задачи: зачем нужна иерархия категорий в шаблоне WooCommerce

В стандартных темах WooCommerce список категорий товаров часто выводится без учёта вложенности: все категории идут подряд, без визуального отражения родительских и дочерних связей. Это неудобно для пользователей и ухудшает навигацию по каталогу. Задача — вывести категории в шаблоне с учётом иерархии, чтобы подкатегории отображались вложенными, а ссылки вели на соответствующие архивные страницы.

Пошаговое решение: вывод иерархического списка категорий в шаблоне

1. Получение массива категорий с учётом иерархии

Используем функцию get_terms() с параметром 'parent' => 0 для получения только верхних категорий, а затем рекурсивно выводим дочерние категории.

function wphierarchy_display_product_categories( $parent = 0 ) {
    $args = [
        'taxonomy'   => 'product_cat',
        'hide_empty' => false,
        'parent'     => $parent,
        'orderby'    => 'name',
        'order'      => 'ASC',
    ];
    $categories = get_terms( $args );

    if ( ! empty( $categories ) && ! is_wp_error( $categories ) ) {
        echo '<ul>';
        foreach ( $categories as $category ) {
            $category_link = get_term_link( $category );
            echo '<li><a href="' . esc_url( $category_link ) . '">' . esc_html( $category->name ) . '</a>';
            // Рекурсивный вызов для дочерних категорий
            wphierarchy_display_product_categories( $category->term_id );
            echo '</li>';
        }
        echo '</ul>';
    }
}

2. Вызов функции в нужном месте шаблона

Например, в файле archive-product.php или в сайдбаре темы вставьте:

<?php wphierarchy_display_product_categories(); ?>

Проверка результата после внедрения

Частые ошибки и причины

Практические советы по безопасности и производительности

Сравнение способов вывода иерархии категорий

МетодПлюсыМинусыПример
Рекурсивный PHP-код (как в статье) Гибкий, полностью кастомизируемый, без плагинов Требует навыков PHP, может быть медленнее без кэша Функция wphierarchy_display_product_categories()
Плагин WooCommerce Category Accordion Простая установка, готовый UI, AJAX-подгрузка Меньше контроля, нагрузка плагина Плагин из репозитория WordPress
Хук WooCommerce + шаблонные части Интеграция в существующий шаблон, использование хуков Требует знаний WooCommerce API, может быть сложен новичкам Добавление кода в functions.php с хуками
WooCommerce: как исправить не работающий AJAX-фильтр по иерархии категорий
26.05.2026
Как создать иерархию пользователей на основе метаполей в WordPress: практическое руководство
14.04.2026
Как сделать иерархию постов с пользовательской логикой в WordPress
11.01.2026
Как создать дерево разделений в WordPress с подсчетом и фильтрацией
14.03.2026
WooCommerce: автоматическое установление родительской категории при импорте товаров
14.05.2026
×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше