Как показывать разные фильтры 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: Разместите короткие коды в виджетах
- Перейдите в Внешний вид → Виджеты
- Добавьте виджет «Текст» или «HTML-код» в вашу боковую панель
- Вставьте ваш короткий код в виджет
- Создайте отдельные виджеты для каждого короткого кода
Шаг 3: Установите плагин «Условные виджеты»
Вам понадобится плагин для управления видимостью виджета на основе условий страницы.
Выберите один из вариантов:
- Widget Logic – https://wordpress.org/plugins/widget-logic/
- Show WordPress Widget by Logic – https://github.com/realmag777/Show-WordPress-Widget-by-Logic
Шаг 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– Поиск по SKUby_text– Текстовый поискby_author– Фильтр по авторуby_onsales– Показывать только товары со скидкойby_instock– Показывать только товары в наличии- Ключи мета-полей (если включено в настройках WOOF)
Используйте by_only="none", чтобы скрыть все не таксономические фильтры.
Поиск ID и слагов
ID категорий
- Go to Товары → Категории
- Наведите курсор на название категории
- Посмотрите в строку состояния браузера или URL
- Найти
tag_ID=35– число — это ваш ID категории
ID страниц
- Go to Страницы
- Наведите курсор на название страницы
- Посмотрите на URL:
post=123 - Число — это ваш ID страницы
Слагов атрибутов
- Go to Товары → Атрибуты
- Слагов атрибутов начинаются с
pa_ - Примеры:
pa_brand,pa_size,pa_color,pa_material
Тестирование вашей настройки
- Сначала протестируйте шорткоды
- Поместите шорткод непосредственно на тестовую страницу
- Убедитесь, что фильтры отображаются корректно
- Проверьте, что фильтрация работает
- Проверьте видимость виджета
- Посетите каждую страницу, где должен отображаться фильтр
- Убедитесь, что отображается правильный фильтр
- Убедитесь, что другие фильтры не отображаются
- Убедитесь, что на странице только один фильтр
- Несколько фильтров на одной странице вызовут конфликты
- Используйте условия виджета для обеспечения эксклюзивности
Важное ограничение
Только один фильтр на страницу: Только один фильтр WOOF может быть активен на странице одновременно. Несколько фильтров вызовут конфликты.
Решение: Используйте условную логику виджетов, чтобы убедиться, что на странице отображается только один виджет фильтра.
Советы
- Сначала протестируйте шорткоды напрямую
- Перед добавлением в виджеты протестируйте шорткоды на обычной странице
- Обеспечивает корректность атрибутов
- Используйте эксклюзивные условия
- Убедитесь, что условия виджетов не пересекаются
- На странице должен быть виден только один фильтр
- Отрицательные условия
- Используйте
!is_page(123), чтобы исключить определенные страницы - Полезно для сценариев "показывать везде, кроме"
- Используйте
- Проверьте слаги атрибутов
- Слагов атрибутов должны начинаться с
pa_ - Неверный ярлык = фильтр не появится
- Слагов атрибутов должны начинаться с
Полная документация
Полный справочник атрибутов шорткода: https://products-filter.com/shortcode/woof
Устранение неполадок
Фильтр не отображается
Возможные причины:
- Условие виджета ложно для текущей страницы
- Атрибуты шорткода некорректны
- ID категорий/атрибутов не существуют
- Несколько фильтров конфликтуют
Solution:
- Проверьте, соответствует ли ID/ярлык страницы условию
- Проверьте ID категорий в Товары → Категории
- Сначала протестируйте шорткод на обычной странице
- Убедитесь, что на странице только один виджет фильтра
Отображаются неверные товары
Possible causes:
- ID категорий некорректны
- Ярлыки атрибутов неверны
- Используется неверный атрибут (
tax_onlyvstaxonomies)
Solution:
- Дважды проверьте ID категорий
- Убедитесь, что ярлыки атрибутов начинаются с
pa_ - Используйте
taxonomies, если у вас включен динамический пересчет - Сначала протестируйте с более простым шорткодом
Отображается несколько фильтров
Причина: Условия виджетов пересекаются
Solution:
- Просмотрите все условия виджетов
- Обеспечьте взаимную исключительность
- Используйте отрицательные условия для разделения
Фильтр отображается на неверных страницах
Cause: Условие виджета слишком широкое
Solution:
- Сделайте условие более конкретным
- При необходимости используйте ID страницы вместо категории
- Тщательно протестируйте логику условий
Итог
Чтобы отображать разные фильтры на разных страницах:
- Создайте пользовательские
[woof]шорткоды сtax_onlyи/илиby_onlyатрибута - Поместите каждый шорткод в отдельные виджеты Text/HTML
- Установите плагин Widget Logic
- Добавьте условную логику к каждому виджету (например,
is_page(123)) - Тестируйте, чтобы убедиться, что на странице отображается только один фильтр
Помните: Только один фильтр может быть активен на странице. Используйте условия виджетов для обеспечения эксклюзивности.