HUSKY - Products Filter Professional for WooCommerce

如何在不同页面上显示不同的过滤器

[woof] shortcode 接受属性,让您可以控制显示哪些过滤器以及它们显示哪些产品。

主属性:

  • tax_only – 仅显示特定分类(类别、属性)
  • by_only – 仅显示特定的非分类法过滤器(价格、SKU、库存等)
  • taxonomies – 仅显示特定的分类术语(与动态计数一起使用)

短代码示例

过滤特定分类法

仅显示类别和品牌筛选器:

[woof tax_only="product_cat,pa_brand"]

筛选非分类元素

仅显示价格、SKU 和库存过滤器:

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

Combined: Taxonomies + Non-Taxonomy Filters

显示特定的分类 AND 非分类过滤器:

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

使用分类法属性(用于动态计数)

仅显示特定分类中的特定词语:

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

注意:taxonomies 当您启用“动态计数”或“隐藏空选项”时,将使用此属性。

完整设置指南

Step 1: Create Your Shortcodes

创建不同的 [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:安装条件小部件插件

You need a plugin to control widget visibility based on page conditions.

Choose one:

步骤 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')

排除特定页面

显示所有 EXCEPT 页面 123:

!is_page(123)

完整示例设置

场景:3 个供应商,不同过滤器

供应商 A (Nike) – 页面 ID:123

  • Shortcode: [woof tax_only="product_cat,pa_size,pa_color" by_only="by_price"]
  • 小部件条件: is_page(123)
  • 结果: 显示所有产品类别,并带有尺寸、颜色和价格过滤器

供应商 B (Adidas) – 页面 Slug:adidas-products

  • Shortcode: [woof taxonomies="product_cat:40,41,42" by_only="by_instock"]
  • 小部件条件: is_page('adidas-products')
  • 结果: 仅显示类别 40、41、42 并带库存筛选器

供应商 C – 分类 ID:50

  • Shortcode: [woof tax_only="product_cat,pa_brand" by_only="by_price,by_sku"]
  • 小部件条件: is_product_category(50)
  • 结果: 显示类别、品牌、价格和 SKU 过滤器

理解属性

tax_only vs taxonomies

使用 tax_only 当:

  • 您想显示所有分类(所有分类项)
  • 示例: tax_only="product_cat,pa_brand" 显示所有类别和所有品牌

使用 taxonomies 当:

  • 您已启用“动态重新计数”或“隐藏空选项”
  • 您想显示特定分类法中的特定术语
  • 示例: taxonomies="product_cat:35,42+pa_brand:nike" shows only categories 35 & 42, and only Nike brand

by_only Values

可用的非分类过滤器 by_only:

  • by_price – 价格范围滑块
  • by_sku – Search by SKU
  • by_text – 文本搜索
  • by_author – Filter by author
  • by_onsales - 只显示特价商品
  • by_instock – 仅显示有货产品
  • Meta field keys (if enabled in WOOF settings)

使用 by_only="none" 隐藏所有非分类过滤器。

查找 ID 和 Slug

分类 ID

  1. 前往 Products → Categories
  2. 悬停在类别名称上
  3. Look at browser status bar or URL
  4. Find tag_ID=35 – 数字是您的类别 ID

页面 ID

  1. 前往 Pages
  2. 将鼠标悬停在页面名称上
  3. 查看 URL: post=123
  4. 该数字是您的页面 ID

属性别名

  1. 前往 商品 → 属性
  2. 属性的 slug 以...开头 pa_
  3. 示例: pa_brand, pa_size, pa_color, pa_material

测试您的设置

  1. 先测试短代码
    • 将简码直接放在测试页面上
    • 验证过滤器是否正确显示
    • 检查筛选是否有效
  2. 测试小部件可见性
    • 访问过滤器应出现的每个页面
    • Verify correct filter displays
    • 检查其他过滤器是否未显示
  3. 验证每页只有一个过滤器
    • 同一页面上的多个过滤器会冲突
    • 使用小部件条件确保独特性

Important Limitation

每页只有一个过滤器: 每页只能激活一个 WOOF 过滤器。多个过滤器将产生冲突。

解决方案: 使用小部件条件逻辑,确保每页只显示一个过滤器小部件。

技巧

  1. 首先直接测试短代码
    • 在添加到小部件之前,请在常规页面上测试短代码
    • 确保属性正确
  2. 使用独占条件
    • 确保小部件条件不重叠
    • 每页应只显示一个过滤器
  3. 负面条件
    • 使用 !is_page(123) 排除特定页面
    • Useful for “show everywhere except” scenarios
  4. 检查属性 slug
    • 属性 slug 必须以 pa_
    • Wrong slug = filter won’t appear

完整文档

有关完整的短代码属性参考: https://products-filter.com/shortcode/woof

故障排除

过滤器未显示

Possible causes:

  • Widget condition is false for current page
  • 简码属性不正确
  • 类别/属性 ID 不存在
  • 多个过滤器冲突

解决方案:

  • 验证页面 ID/slug 是否符合条件
  • 在“产品”→“分类”中检查分类 ID
  • 首先在常规页面上测试简码
  • 确保每页只有一个过滤器小部件

显示错误产品

Possible causes:

  • Category IDs incorrect
  • 属性 slug 错误
  • Using wrong attribute (tax_only vs taxonomies)

解决方案:

  • 仔细检查类别 ID
  • Verify attribute slugs start with pa_
  • 使用 taxonomies 如果启用了动态计数
  • 先用更简单的短代码测试

Multiple Filters Displaying

原因: Widget conditions overlap

解决方案:

  • 查看所有小部件条件
  • 确保互斥
  • Use negative conditions to separate

Filter Shows on Wrong Pages

原因: Widget condition too broad

解决方案:

  • 使条件更具体
  • 如果需要,使用页面 ID 而不是类别
  • 仔细测试条件逻辑

Summary

要在不同页面上显示不同的筛选器:

  1. 创建自定义 [woof] 带有短代码 tax_only 和/或 by_only 属性
  2. 将每个短代码放在单独的文本/HTML小部件中
  3. 安装 Widget Logic 插件
  4. 为每个 widget 添加条件逻辑(例如, is_page(123))
  5. 测试以确保每个页面只显示一个过滤器

记住: 每个页面只能激活一个过滤器. 使用小部件条件确保独占性。