我正在尝试编写一个简单的if语句,但总是很难与shopify的系统一起使用。
基本上我希望它能够做到这一点:
{%if collection.product =='停用'%} 本产品已停产。 {%endif%}
如果它在此集合中,则显示此文本/ html。否则它不会显示任何内容。这将在product.liquid模板中。
有什么想法吗?
答案 0 :(得分:6)
这就是最终的工作:
{% for c in product.collections %}
{% if c.handle == "discontinued" %}
This product is Discontinued
{% endif %}
{% endfor %}
答案 1 :(得分:1)
如果我了解Shopify中液体收集的工作原理,您需要迭代所有产品。
如果您直接使用集合,则需要执行类似的操作:
{% for product in collection.product %}
{% if product.tags contains 'discontinued' %}
This product has been discontinued :(
{% endif %}
{% endfor %}
如果您只使用单一产品,则可以使用内部if
液体标签部件。
参考文献:
答案 2 :(得分:1)
您确实可以将已停产的产品添加到名为已停产的集合中。
在渲染产品时,您可以像csaunders建议的那样,简单地遍历已停产的集合中的所有产品,并检查当前产品的ID是否与该集合中的任何产品匹配。如果是这样,那就做你必须做的事。无需使用标签。
答案 3 :(得分:1)
我想这对任何人都有帮助,我在shopify网站的侧边栏中使用过。 下面的代码将检查当前的收集页面。
<div class="row-fluid not-animated" data-animate="fadeInUp">
<div class="title">By Collections</div>
<form class="coll">
{% assign col_tags = collection.title %}
{% for collection in collections %}
<input type="radio" value="{{ collection.url }}" name="collections" {% if col_tags contains collection.title %} checked {% endif %} >{{ collection.title | escape }} <br/>
{% endfor %}
</form>
答案 4 :(得分:0)
您可以使用 product.collections
上的地图为产品创建集合数组。这将创建一个具有您指定属性的新数组,即每个集合的句柄。
然后您可以检查这个新数组是否 contains
您想要使用的句柄。
{% assign productCollections = product.collections | map: "handle" %}
{% if productCollections contains 'your-collection-handle' %}
{% comment %} DoSomething {% endcomment %}
{% endif %}
例如:
{% assign productCollections = product.collections | map: "handle" %}
{% if productCollections contains 'discontinued' %}
This product is Discontinued
{% endif %}
如果您的案例不同,您可以映射其他字段,例如标题。