我很想知道如何从用于自动创建集合的显示标记中删除它们(它们出现在其他产品部分中)。 例如:
$ p> $ 125 收集:业务
标签:秋季商业黑色
以便过滤掉BUSINESS标记(用于形成BUSINESS集合)。
尝试以下“直截了当”的解决方案:
{% for tag in product.tags %} {% unless tag == 'Business' or tag == 'Vintage' or tag == or tag == 'Boho' %} display {{ tag }} link {% endunless %} {% endfor %}
哪个没看见工作 感谢
答案 0 :(得分:1)
有时,if语句中的多个条件在流动性方面不能很好地发挥作用。 (请参阅here和here。)
你可以尝试这样的事情:
{% assign excluded_tags = "Business,Vintage,Boho" | split: "," %}
{% for tag in product.tags %}
{% unless excluded_tags contains tag %}
{{ tag }}
{% endunless %}
{% endfor %}
修改强>
我刚刚再次测试了你的代码,即使是拼写错误or tag == or...
,它仍然可以正常使用(只是保存时的警告)。
另一个建议或许是与资本化有关。例如。如果您有标记商家,则tag == 'Business'
无效。资本化需要保持一致。
编辑2:
来自以下评论:
我在考虑如何根据产品集合的名称自动填充排除的标签。
您可以使用map
获取一系列收藏品:
{% assign excluded_tags = product.collections | map: 'title' %}
答案 1 :(得分:0)
你的直截了当是不完整的。
{% for tag in product.tags %}
{% unless tag == 'Business' or tag == 'Vintage' or tag == <missing_value_here> or tag == 'Boho' %}
display {{ tag }} link
{% endunless %}
{% endfor %}
第三个条件是空的,因此可能是它失败的原因。
同样如Steph的另一个答案中所提到的,有时候多个条件可能会不稳定,如果是这样的话:
{% for tag in product.tags %}
{% unless tag == collection.title %}
display {{ tag }} link
{% endif %}
{% endfor %}
它也将照顾任何未来的收藏品。
P.S。这假设标签显示的页面包含集合URL。