WooCommerce: решение проблемы с отображением иерархии категорий при фильтрации

|

Диагностика проблемы: почему фильтр категорий не показывает иерархию

В WooCommerce часто используется фильтр товаров по категориям с иерархией (родительские и дочерние категории). Однако при включении некоторых плагинов фильтрации или кастомных виджетов категории отображаются как плоский список без вложенности. Это приводит к путанице пользователей и ухудшению UX.

Основные симптомы:

Для диагностики:

Пошаговое решение: как восстановить иерархию категорий в фильтре WooCommerce

1. Использование стандартного виджета WooCommerce "Фильтр по атрибутам" с иерархией

Убедитесь, что вы используете стандартный виджет WooCommerce Product Categories с включенной опцией Показывать иерархию.

В админке WordPress:

  1. Перейдите в Внешний вид > Виджеты.
  2. Добавьте виджет Product Categories в нужную область.
  3. В настройках виджета установите галочку Показывать иерархию.

2. Исправление вывода в коде, если используется кастомный фильтр

Если вы выводите категории вручную, используйте функцию wp_list_categories() с параметром hierarchical:

wp_list_categories(array(
    'taxonomy' => 'product_cat',
    'orderby' => 'name',
    'show_count' => true,
    'pad_counts' => true,
    'hierarchical' => true,
    'title_li' => '',
));

Параметр hierarchical => true обеспечивает вложенную структуру с тегами <ul> и <li> для дочерних категорий.

3. Обработка AJAX-фильтров с поддержкой иерархии

При использовании плагинов с AJAX-фильтрацией (например, FacetWP, WOOF) убедитесь, что они поддерживают иерархию категорий. В некоторых случаях нужно дополнительно настроить параметры запроса или шаблон вывода.

Пример фильтрации с передачей родительской категории и дочерних через WP_Query:

$args = array(
    'post_type' => 'product',
    'tax_query' => array(
        array(
            'taxonomy' => 'product_cat',
            'field' => 'slug',
            'terms' => array('parent-cat', 'child-cat-1', 'child-cat-2'),
            'include_children' => true,
        ),
    ),
);
$query = new WP_Query($args);

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

Частые ошибки и как их исправить

Практические советы по оптимизации и безопасности

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

МетодПлюсыМинусыПример использования
Стандартный виджет WooCommerceПростота, поддержка иерархии из коробки, интеграция с темойОграниченные настройки, внешний вид зависит от темыЧерез админку в разделе Виджеты
Код с wp_list_categories()Гибкость, полный контроль над выводомТребует знаний PHP, нужно стилизовать вывод вручнуюСм. пример выше с hierarchical => true
Плагины AJAX-фильтрации (FacetWP, WOOF)Удобство для пользователя, мгновенный откликМогут требовать доп. настройки, нагрузка на серверНастройка в плагине, возможна кастомизация шаблонов
Создаем динамическую иерархию страниц в WordPress с помощью кода и плагинов
12.12.2025
WooCommerce: правильная настройка иерархии атрибутов и фильтров для товаров
04.05.2026
WooCommerce: как правильно настроить иерархию категорий и проблемы с производительностью
17.04.2026
Как создать дерево разделений в WordPress с подсчетом и фильтрацией
14.03.2026
WooCommerce: как вывести иерархию категорий товаров в шаблоне темы
21.06.2026
×

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

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

пишет статьи

готовит SEO

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

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