我正在尝试编写一个简单的 if 语句,但总是与 shopify 的系统斗争。
本质上我希望它这样做:
{% if collection.product == 'discontinued' %} 本产品已停产。{% 万一 %}
如果它在此集合中,则显示此文本/html。否则它不会显示任何东西。这将在 product.liquid 模板中。
有任何想法吗?
我正在尝试编写一个简单的 if 语句,但总是与 shopify 的系统斗争。
本质上我希望它这样做:
{% if collection.product == 'discontinued' %} 本产品已停产。{% 万一 %}
如果它在此集合中,则显示此文本/html。否则它不会显示任何东西。这将在 product.liquid 模板中。
有任何想法吗?
这就是最终的工作:
{% for c in product.collections %}
{% if c.handle == "discontinued" %}
This product is Discontinued
{% endif %}
{% endfor %}
我想这对任何人都有帮助,我在 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>
您确实可以将已停产的产品添加到称为已停产的集合中。
渲染产品时,您可以按照 csaunders 的建议进行操作,只需遍历已停产集合中的所有产品,并检查当前产品的 id 是否与该集合中的任何产品匹配。如果是这样,做你必须做的。无需使用标签。
您可以使用 map on 为产品创建一个集合数组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 %}
如果您的案例不同,您可以映射其他字段,例如标题。