如何在Shopify默认Search & Discovery应用中排除标签及集合页配置
在Shopify Collections/All页面排除指定标签的实现方案
一、输入标签的变量匹配逻辑
你已经通过文本框收集了用户输入的排除标签,接下来需要做的是清洗输入内容并实现产品标签的匹配过滤:
处理输入变量
先对用户输入的标签做格式化处理,解决分隔符、空格、重复项问题,示例Liquid代码:{% assign excluded_tags = settings.excluded_tags_input | split: ',' | map: 'strip' | map: 'downcase' | reject: 'empty' | uniq %}代码说明:
split: ',':按逗号拆分输入内容成数组map: 'strip':移除每个标签前后的空格map: 'downcase':统一转成小写,避免大小写匹配问题reject: 'empty':过滤掉空字符串uniq:移除重复的标签
产品匹配过滤
在collections/all模板的产品循环中,加入判断逻辑,跳过包含排除标签的产品:{% for product in collection.products %} {% assign skip_product = false %} {% assign product_tags_lower = product.tags | map: 'downcase' %} {% for tag in excluded_tags %} {% if product_tags_lower contains tag %} {% assign skip_product = true %} {% break %} {% endif %} {% endfor %} {% unless skip_product %} <!-- 这里放置你的产品卡片渲染代码 --> {% endunless %} {% endfor %}逻辑说明:先把产品标签转成小写,再遍历排除标签数组,只要产品有一个标签匹配,就标记为跳过,不渲染该产品。
二、在Shopify筛选应用中实现的方法
1. 主题自带筛选(Online Store 2.0)
如果你的主题支持Online Store 2.0架构:
- 进入Shopify后台的「在线商店」→「主题」→「自定义」,打开
Collections/all页面 - 若已添加筛选区块,直接编辑模板代码,将上面的变量匹配逻辑整合到产品循环中,替换原有的产品渲染部分
- 确保文本框的设置项(
settings.excluded_tags_input)能正确读取用户输入的标签
2. 第三方筛选应用
主流的Shopify筛选应用都支持排除规则设置:
- 打开筛选应用的后台,找到「筛选规则」或「高级规则」选项
- 添加新规则,选择「标签」作为筛选字段,设置条件为「不包含」
- 将用户输入的排除标签列表导入规则(部分应用支持直接读取主题设置中的变量,可关联你之前创建的
excluded_tags变量,实现动态同步) - 保存规则后,应用会自动在
collections/all页面生效,过滤掉带有指定标签的产品
注意事项
- 标签匹配默认大小写敏感,建议统一转成小写处理,避免漏判或误判
- 若产品数量较大,循环判断可能影响页面加载速度,可考虑在Shopify后台创建一个「排除标签」集合,通过集合关联的方式优化性能
内容的提问来源于stack exchange,提问作者Dharmesh Vekariya
相关产品推荐
相关产品推荐

