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
29.12.2025
Автоматическое создание иерархии контента в WordPress с помощью WPRemark
01.03.2026
Как создать иерархию кастомных пользовательских метаполей в WordPress
01.04.2026
Как создать и настроить собственную иерархию таксономий в WordPress
06.12.2025
Как сделать иерархию постов с пользовательской логикой в WordPress
11.01.2026
×
Оптимизируй свой сайт!

Скидка -15% на премиум плагин Clearfy Pro

Купить плагин сейчас ⋙