从产品标签列表(显示)shopify中过滤出集合名称

时间:2016-01-19 00:44:43

标签: shopify

我很想知道如何从用于自动创建集合的显示标记中删除它们(它们出现在其他产品部分中)。 例如:

  $ 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 %}

哪个没看见工作 感谢

2 个答案:

答案 0 :(得分:1)

有时,if语句中的多个条件在流动性方面不能很好地发挥作用。 (请参阅herehere。)

你可以尝试这样的事情:

{% 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。