Как использовать хук WooCommerce для изменения вывода категорий товаров

Диагностика задачи: изменить вывод категорий товаров в WooCommerce

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

Как найти и использовать подходящий хук WooCommerce для вывода категорий

WooCommerce использует несколько хуков в шаблонах архивов категорий товаров (product_cat). Основные из них:

  • woocommerce_before_shop_loop — до списка товаров и категорий;
  • woocommerce_after_shop_loop — после списка;
  • woocommerce_before_subcategory и woocommerce_after_subcategory — вокруг вывода каждой категории;
  • woocommerce_shop_loop_subcategory_title — вывод заголовка категории.

Чтобы изменить вывод категорий, например, добавить описание под названием категории, можно использовать хук woocommerce_after_subcategory_title.

Пример: добавить описание категории под названием

add_action('woocommerce_after_subcategory_title', 'custom_category_description', 10);
function custom_category_description($category) {
    if ($category && !empty($category->description)) {
        echo '<div class="custom-cat-description">' . wp_kses_post($category->description) . '</div>';
    }
}

Этот код добавит описание категории под заголовком в списке категорий.

Пошаговое решение: заменить оформление категорий с помощью хука

  1. Создайте дочернюю тему или используйте плагин для пользовательских функций (например, Code Snippets).
  2. Добавьте приведённый выше код в functions.php или через плагин.
  3. Очистите кэш сайта и браузера.
  4. Проверьте страницу архива категорий WooCommerce (/product-category/slug/).

Как проверить, что решение сработало

  • Перейдите в админку WordPress — Товары — Категории и добавьте описание к категории.
  • Откройте страницу категории на сайте.
  • Под заголовком категории должен появиться текст описания, стилизованный в <div class="custom-cat-description">.

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

  • Описание не появляется — убедитесь, что в категории есть описание, и что код подключён правильно (проверьте ошибки PHP).
  • Код не срабатывает — проверьте приоритет хука, попробуйте увеличить приоритет, например, 15.
  • Описание выводится в неверном месте — попробуйте использовать другие хуки: woocommerce_before_subcategory_title или woocommerce_shop_loop_subcategory_title.

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

  • Используйте wp_kses_post() для вывода описаний, чтобы не допустить XSS-атак.
  • Не модифицируйте шаблоны WooCommerce напрямую — используйте хуки для обновляемости.
  • Кешируйте страницы архива категорий при высокой нагрузке с помощью плагинов кеширования.

Таблица сравнения способов изменения вывода категорий WooCommerce

МетодОписаниеПлюсыМинусы
Редактирование шаблоновПравка файлов темы archive-product.php или content-product_cat.phpМаксимальный контроль над выводомТребуется поддержка при обновлениях WooCommerce
Использование хуков (пример выше)Добавление функций через хукиБезопасно, обновляемо, быстроОграничено возможностями хуков
Плагины для кастомизацииПлагины визуальной настройки WooCommerceПросто для новичковМожет замедлять сайт, не всегда гибко

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

add_filter('woocommerce_subcategory_link', 'custom_subcategory_link', 10, 2);
function custom_subcategory_link($category_link, $category) {
    // Пример: добавить utm-метку для аналитики
    return add_query_arg('utm_source', 'expert-review', $category_link);
}

Этот код добавит utm-метку ко всем ссылкам категорий на сайте.

Как добавить отзывы с оценками на WordPress с помощью плагинов
13.12.2025
Как удалить ошибку WooCommerce "Invalid security nonce" при оформлении заказа
30.04.2026
Как исправить ошибку WooCommerce «Invalid security nonce» при оформлении заказа
05.07.2026
Как использовать шорткоды в WordPress: практические примеры и создание своих шорткодов
20.11.2025
Как избежать ошибки 503 в WordPress: практическое руководство
19.03.2026