HUSKY - Product Filter for WooCommerce

Как показывать разные фильтры WooCommerce на разных страницах

Короткий код [woof] плагина HUSKY WooCommerce позволяет управлять тем, какие фильтры отображаются и какие товары они показывают.

Основные атрибуты:

  • tax_only – Показывать только определенные таксономии (категории, атрибуты)
  • by_only – Показывать только определенные нетаксономические фильтры (цена, SKU, наличие и т. д.)
  • taxonomies – Показывать только определенные термины таксономий (используется с динамическим пересчетом)

Примеры коротких кодов

Фильтр по определенным таксономиям

Показывать только фильтры категорий и брендов:

[woof tax_only="product_cat,pa_brand"]

Фильтр по нетаксономическим элементам

Показывать только фильтры цены, SKU и наличия:

[woof by_only="by_price,by_sku,by_instock"]

Комбинированные: таксономии + нетаксономические фильтры

Показывать определенные таксономии И нетаксономические фильтры:

[woof tax_only="product_cat,pa_size,pa_color" by_only="by_price,by_instock"]

Использование атрибута taxonomies (для динамического пересчета)

Показывать только определенные термины из определенных таксономий:

[woof taxonomies="product_cat:35,42,58+pa_brand:nike,adidas"]

Примечание: The taxonomies атрибут используется, когда у вас включен «динамический пересчет» или «скрывать пустые опции».

Полное руководство по настройке

Шаг 1: Создайте свои короткие коды

Создайте разные [woof] короткие коды для каждой страницы с соответствующими атрибутами.

Пример:

  • Поставщик A: [woof tax_only="product_cat,pa_size,pa_color" by_only="by_price"]
  • Поставщик B: [woof taxonomies="product_cat:50+pa_brand:nike,adidas" by_only="by_price"]

Шаг 2: Разместите короткие коды в виджетах

  1. Перейдите в Внешний вид → Виджеты
  2. Добавьте виджет «Текст» или «HTML-код» в вашу боковую панель
  3. Вставьте ваш короткий код в виджет
  4. Создайте отдельные виджеты для каждого короткого кода

Шаг 3: Установите плагин «Условные виджеты»

Вам понадобится плагин для управления видимостью виджета на основе условий страницы.

Выберите один из вариантов:

Шаг 4: Установите условия видимости

Добавьте условную логику к каждому виджету, чтобы контролировать, где он отображается.

Примеры условной логики

Показать фильтр на конкретной странице

По ярлыку страницы:

is_page('supplier-nike')

По ID страницы:

is_page(123)

Показать фильтр на нескольких страницах

is_page(array('supplier-1', 'supplier-2', 'supplier-3'))

Показать фильтр на архиве категорий

По ID категории:

is_product_category(35)

По ярлыку категории:

is_product_category('electronics')

Показать фильтр на пользовательской таксономии

is_tax('supplier', 'nike-products')

Исключить определенные страницы

Показать везде, КРОМЕ страницы 123:

!is_page(123)

Полный пример настройки

Сценарий: 3 поставщика с различными фильтрами

Поставщик A (Nike) – ID страницы: 123

  • Короткий код: [woof tax_only="product_cat,pa_size,pa_color" by_only="by_price"]
  • Условие виджета: is_page(123)
  • Результат: Отображает все категории товаров с фильтрами размера, цвета и цены

Поставщик B (Adidas) – Ярлык страницы: adidas-products

  • Shortcode: [woof taxonomies="product_cat:40,41,42" by_only="by_instock"]
  • Widget Condition: is_page('adidas-products')
  • Result: Отображает только категории 40, 41, 42 с фильтром наличия

Поставщик C – ID архива категории: 50

  • Shortcode: [woof tax_only="product_cat,pa_brand" by_only="by_price,by_sku"]
  • Widget Condition: is_product_category(50)
  • Result: Отображает фильтры категорий, брендов, цены и SKU

Понимание атрибутов

tax_only против taxonomies

Используйте tax_only, когда:

  • Вы хотите показать все таксономии (все термины)
  • Example: tax_only="product_cat,pa_brand" показывает все категории и все бренды

Используйте taxonomies, когда:

  • У вас включен "динамический пересчет" или "скрыть пустые опции"
  • Вы хотите показать конкретные термины из конкретных таксономий
  • Example: taxonomies="product_cat:35,42+pa_brand:nike" показывает только категории 35 и 42, и только бренд Nike

by_only Значения

Доступные не таксономические фильтры для by_only:

  • by_price – Ползунок диапазона цен
  • by_sku – Поиск по SKU
  • by_text – Текстовый поиск
  • by_author – Фильтр по автору
  • by_onsales – Показывать только товары со скидкой
  • by_instock – Показывать только товары в наличии
  • Ключи мета-полей (если включено в настройках WOOF)

Используйте by_only="none", чтобы скрыть все не таксономические фильтры.

Поиск ID и слагов

ID категорий

  1. Go to Товары → Категории
  2. Наведите курсор на название категории
  3. Посмотрите в строку состояния браузера или URL
  4. Найти tag_ID=35 – число — это ваш ID категории

ID страниц

  1. Go to Страницы
  2. Наведите курсор на название страницы
  3. Посмотрите на URL: post=123
  4. Число — это ваш ID страницы

Слагов атрибутов

  1. Go to Товары → Атрибуты
  2. Слагов атрибутов начинаются с pa_
  3. Примеры: pa_brand, pa_size, pa_color, pa_material

Тестирование вашей настройки

  1. Сначала протестируйте шорткоды
    • Поместите шорткод непосредственно на тестовую страницу
    • Убедитесь, что фильтры отображаются корректно
    • Проверьте, что фильтрация работает
  2. Проверьте видимость виджета
    • Посетите каждую страницу, где должен отображаться фильтр
    • Убедитесь, что отображается правильный фильтр
    • Убедитесь, что другие фильтры не отображаются
  3. Убедитесь, что на странице только один фильтр
    • Несколько фильтров на одной странице вызовут конфликты
    • Используйте условия виджета для обеспечения эксклюзивности

Важное ограничение

Только один фильтр на страницу: Только один фильтр WOOF может быть активен на странице одновременно. Несколько фильтров вызовут конфликты.

Решение: Используйте условную логику виджетов, чтобы убедиться, что на странице отображается только один виджет фильтра.

Советы

  1. Сначала протестируйте шорткоды напрямую
    • Перед добавлением в виджеты протестируйте шорткоды на обычной странице
    • Обеспечивает корректность атрибутов
  2. Используйте эксклюзивные условия
    • Убедитесь, что условия виджетов не пересекаются
    • На странице должен быть виден только один фильтр
  3. Отрицательные условия
    • Используйте !is_page(123), чтобы исключить определенные страницы
    • Полезно для сценариев "показывать везде, кроме"
  4. Проверьте слаги атрибутов
    • Слагов атрибутов должны начинаться с pa_
    • Неверный ярлык = фильтр не появится

Полная документация

Полный справочник атрибутов шорткода: https://products-filter.com/shortcode/woof

Устранение неполадок

Фильтр не отображается

Возможные причины:

  • Условие виджета ложно для текущей страницы
  • Атрибуты шорткода некорректны
  • ID категорий/атрибутов не существуют
  • Несколько фильтров конфликтуют

Solution:

  • Проверьте, соответствует ли ID/ярлык страницы условию
  • Проверьте ID категорий в Товары → Категории
  • Сначала протестируйте шорткод на обычной странице
  • Убедитесь, что на странице только один виджет фильтра

Отображаются неверные товары

Possible causes:

  • ID категорий некорректны
  • Ярлыки атрибутов неверны
  • Используется неверный атрибут (tax_only vs taxonomies)

Solution:

  • Дважды проверьте ID категорий
  • Убедитесь, что ярлыки атрибутов начинаются с pa_
  • Используйте taxonomies, если у вас включен динамический пересчет
  • Сначала протестируйте с более простым шорткодом

Отображается несколько фильтров

Причина: Условия виджетов пересекаются

Solution:

  • Просмотрите все условия виджетов
  • Обеспечьте взаимную исключительность
  • Используйте отрицательные условия для разделения

Фильтр отображается на неверных страницах

Cause: Условие виджета слишком широкое

Solution:

  • Сделайте условие более конкретным
  • При необходимости используйте ID страницы вместо категории
  • Тщательно протестируйте логику условий

Итог

Чтобы отображать разные фильтры на разных страницах:

  1. Создайте пользовательские [woof] шорткоды с tax_only и/или by_only атрибута
  2. Поместите каждый шорткод в отдельные виджеты Text/HTML
  3. Установите плагин Widget Logic
  4. Добавьте условную логику к каждому виджету (например, is_page(123))
  5. Тестируйте, чтобы убедиться, что на странице отображается только один фильтр

Помните: Только один фильтр может быть активен на странице. Используйте условия виджетов для обеспечения эксклюзивности.