如何让Shopify Liquid标签过滤代码的排除标签列表保持可读性
失效原因
换行书写后,每个标签的前后会带入换行符、缩进空格等空白字符,split(',')生成的排除标签数组元素会携带这些多余空白,和实际产品标签无法匹配,导致过滤逻辑失效。
解决方案
方案1:保留逗号分隔写法,新增空白清理逻辑
直接在原有split逻辑后追加map: 'strip'过滤器,自动清除每个数组元素的前后空白字符,代码如下:
{% assign exclude_tags = "Dangerous Goods, Quick Links, ShippingLetter, ShippingParcel" | split: ',' | map: 'strip' %}
剩余的引入代码、遍历过滤逻辑不需要做任何修改,可直接正常运行。
方案2:无需逗号,纯每行一个标签书写(更适合大量标签维护)
如果排除标签数量较多,连逗号都不需要写,直接每行放一个标签即可,实现代码如下:
{% capture exclude_tags_raw %} Dangerous Goods Quick Links ShippingLetter ShippingParcel {% endcapture %} {% assign exclude_tags = exclude_tags_raw | strip | newline_to_br | split: '<br />' | map: 'strip' %}
该方案逻辑说明:
- 用
capture块捕获所有多行书写的排除标签,无需添加任何分隔符 - 先清理捕获内容首尾的多余空白/换行
- 将换行符替换为
<br />标记后拆分生成数组 - 最后统一清理每个标签元素的前后空白,得到干净的排除标签列表
原有后续的引入、遍历逻辑同样无需修改。
内容的提问来源于stack exchange,提问作者robgt
相关产品推荐
相关产品推荐

