如何在不同页面显示不同的 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"]
注意: 当您启用“动态重新计数”或“隐藏空选项”时,需要使用 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
- 短代码:
[woof taxonomies="product_cat:40,41,42" by_only="by_instock"] - 小工具条件:
is_page('adidas-products') - 结果:仅显示分类 ID 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 时:
- 您已经启用“动态重新计数”或“隐藏空选项”
- 您希望显示指定分类法中的指定术语
- 示例:
taxonomies="product_cat:35,42+pa_brand:nike"仅显示分类 ID 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
- 前往 产品 → 产品分类
- 鼠标悬停在分类名称上
- 查看浏览器状态栏或 URL
- 找到
tag_ID=35– 数字即为分类 ID
页面 ID
- 前往 页面
- 鼠标悬停在页面名称上
- 查看 URL:
post=123 - 数字即为页面 ID
属性别名
- 前往 产品 → 属性
- 属性别名以
pa_开头 - 示例:
pa_brand、pa_size、pa_color、pa_material
测试您的设置
- 先测试短代码
- 将短代码直接放在测试页面上
- 确认筛选器正确显示
- 检查筛选功能是否正常
- 测试小工具可见性
- 访问每个应该显示筛选器的页面
- 确认显示的是正确的筛选器
- 检查其他筛选器是否没有出现
- 确保每页只有一个筛选器
- 同一页面有多个筛选器会导致冲突
- 使用小工具条件确保互斥性
重要限制
每页仅一个筛选器: 同一时间每页只能激活一个 WOOF 筛选器。多个筛选器会冲突。
解决方案: 使用小工具条件逻辑,确保每页仅显示一个筛选器小工具。
提示
- 先直接测试短代码
- 在添加到小工具之前,先在普通页面上测试短代码
- 确保属性正确
- 使用互斥条件
- 确保小工具条件不重叠
- 每页只能有一个筛选器可见
- 使用否定条件
- 使用
!is_page(123)排除指定页面 - 适用于“除……外都显示”的场景
- 使用
- 检查属性别名
- 属性别名必须以
pa_开头 - 错误的别名会导致筛选器不显示
- 属性别名必须以
完整文档
关于短代码属性的完整参考,请访问:https://products-filter.com/shortcode/woof
故障排除
筛选器未显示
可能的原因:
- 当前页面的小工具条件为 false
- 短代码属性不正确
- 分类/属性 ID 不存在
- 多个筛选器冲突
解决方案:
- 确认页面 ID/别名与条件匹配
- 在“产品 → 产品分类”中检查分类 ID
- 先在普通页面上测试短代码
- 确保每页仅有一个筛选器小工具
显示错误的产品
可能的原因:
- 分类 ID 不正确
- 属性别名错误
- 使用了错误的属性(
tax_only与taxonomies)
解决方案:
- 仔细检查分类 ID
- 确认属性别名以
pa_开头 - 如果启用了动态重新计数,请使用
taxonomies - 先用更简单的短代码进行测试
多个筛选器同时显示
原因: 小工具条件重叠
解决方案:
- 检查所有小工具条件
- 确保彼此互斥
- 使用否定条件进行区分
筛选器显示在错误的页面上
原因: 小工具条件过于宽泛
解决方案:
- 使条件更具体
- 如果需要,使用页面 ID 而不是分类
- 仔细测试条件逻辑
总结
要在不同页面上显示不同的筛选器:
- 创建自定义
[woof]短代码,并使用tax_only和/或by_only属性 - 将每个短代码分别放入单独的文本/HTML 小工具中
- 安装 Widget Logic 插件
- 为每个小工具添加条件逻辑(例如
is_page(123)) - 测试以确保每页仅显示一个筛选器
请记住: 每页只能激活一个筛选器。使用小工具条件确保互斥性。