Как показывать разные фильтры на разных страницах
Шорткод [woof] принимает атрибуты, позволяющие управлять тем, какие фильтры показывать и какие товары они выводят.
Основные атрибуты:
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"]
Примечание: Атрибут taxonomies используется, когда включён “dynamic recount” или “hide empty options”.
Полное руководство по настройке
Шаг 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: Разместите шорткоды в виджетах
- Перейдите в Appearance → Widgets
- Добавьте виджет Text или Custom 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: Задайте условия видимости
Добавьте условную логику для каждого виджета, чтобы управлять тем, где он появляется.
Примеры условной логики
Показать фильтр на конкретной странице
По slug страницы:
is_page('supplier-nike')
По ID страницы:
is_page(123)
Показать фильтр на нескольких страницах
is_page(array('supplier-1', 'supplier-2', 'supplier-3'))
Показать фильтр на архиве категории
По ID категории:
is_product_category(35)
По slug категории:
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) — slug страницы: adidas-products
- Шорткод:
[woof taxonomies="product_cat:40,41,42" by_only="by_instock"] - Условие виджета:
is_page('adidas-products') - Результат: Показывает только категории 40, 41, 42 с фильтром наличия
Поставщик C — ID архива категории: 50
- Шорткод:
[woof tax_only="product_cat,pa_brand" by_only="by_price,by_sku"] - Условие виджета:
is_product_category(50) - Результат: Показывает фильтры категорий, брендов, цены и SKU
Понимание атрибутов
tax_only против taxonomies
Используйте tax_only, когда:
- Хотите показать целые таксономии (все термины)
- Пример:
tax_only="product_cat,pa_brand"показывает все категории и все бренды
Используйте taxonomies, когда:
- У вас включён “dynamic recount” или “hide empty options”
- Хотите показать конкретные термины из конкретных таксономий
- Пример:
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 и slug
ID категорий
- Перейдите в Products → Categories
- Наведите курсор на название категории
- Посмотрите на строку состояния браузера или URL
- Найдите
tag_ID=35— это число и есть ID вашей категории
ID страниц
- Перейдите в Pages
- Наведите курсор на название страницы
- Посмотрите на URL:
post=123 - Это число и есть ID вашей страницы
Slug атрибутов
- Перейдите в Products → Attributes
- Slug атрибутов начинаются с
pa_ - Примеры:
pa_brand,pa_size,pa_color,pa_material
Проверка вашей настройки
- Сначала проверьте шорткоды
- Разместите шорткод прямо на тестовой странице
- Убедитесь, что фильтры отображаются корректно
- Проверьте, что фильтрация работает
- Проверьте видимость виджетов
- Откройте каждую страницу, где должен появиться фильтр
- Убедитесь, что отображается правильный фильтр
- Проверьте, что другие фильтры не появляются
- Убедитесь, что на странице только один фильтр
- Несколько фильтров на одной странице будут конфликтовать
- Используйте условия виджетов для обеспечения взаимоисключения
Важное ограничение
Только один фильтр на странице: На странице одновременно может быть активен только один фильтр WOOF. Несколько фильтров будут конфликтовать.
Решение: Используйте условную логику виджетов, чтобы на странице отображался только один виджет фильтра.
Советы
- Сначала протестируйте шорткоды напрямую
- Перед добавлением в виджеты протестируйте шорткоды на обычной странице
- Это гарантирует правильность атрибутов
- Используйте взаимоисключающие условия
- Убедитесь, что условия виджетов не пересекаются
- На странице должен быть виден только один фильтр
- Отрицательные условия
- Используйте
!is_page(123)для исключения конкретных страниц - Полезно для сценариев “показать везде, кроме”
- Используйте
- Проверяйте slug атрибутов
- Slug атрибутов должны начинаться с
pa_ - Неправильный slug = фильтр не появится
- Slug атрибутов должны начинаться с
Полная документация
Полный справочник по атрибутам шорткода: https://products-filter.com/shortcode/woof
Решение проблем
Фильтр не появляется
Возможные причины:
- Условие виджета ложно для текущей страницы
- Атрибуты шорткода неправильные
- ID категории/атрибута не существуют
- Конфликт нескольких фильтров
Решение:
- Убедитесь, что ID/slug страницы совпадает с условием
- Проверьте ID категорий в Products → Categories
- Сначала протестируйте шорткод на обычной странице
- Убедитесь, что на странице только один виджет фильтра
Показываются неправильные товары
Возможные причины:
- Неправильные ID категорий
- Неправильные slug атрибутов
- Используется неправильный атрибут (
tax_onlyвместоtaxonomies)
Решение:
- Перепроверьте ID категорий
- Убедитесь, что slug атрибутов начинаются с
pa_ - Используйте
taxonomies, если включён динамический пересчёт - Сначала протестируйте с более простым шорткодом
Отображается несколько фильтров
Причина: Условия виджетов пересекаются
Решение:
- Проверьте все условия виджетов
- Убедитесь во взаимном исключении
- Используйте отрицательные условия для разделения
Фильтр показывается на неправильных страницах
Причина: Условие виджета слишком широкое
Решение:
- Сделайте условие более конкретным
- Используйте ID страницы вместо категории при необходимости
- Тщательно проверьте логику условия
Итог
Чтобы показывать разные фильтры на разных страницах:
- Создайте пользовательские шорткоды
[woof]с атрибутамиtax_onlyи/илиby_only - Разместите каждый шорткод в отдельных виджетах Text/HTML
- Установите плагин Widget Logic
- Добавьте условную логику к каждому виджету (например,
is_page(123)) - Проверьте, что на странице отображается только один фильтр
Помните: На странице может быть активен только один фильтр. Используйте условия виджетов для обеспечения взаимоисключения.