我有一个collection.list.liquid文件。
这将遍历商店中的所有产品。
{% for product in collection.products %}
我创建了另一个产品集合,这些集合巧妙地命名为“特价商品”,并带有url和句柄“ / special-offers-products”。
在我的FOR循环中,我想做一个IF语句,它简单地询问FOR循环中的每个产品是否也包含在此“特殊优惠产品”附加产品中。如果为TRUE,则显示一小段代码,该代码块实质上是一个标有“ Special Offer!”的标签。
[幼稚地,我尝试过(但失败了):
{% if product.collections contains 'special-offers-products' %}
<div class="special-offer-banner">
Special<br/>
Offer!
</div>
{% endif %}
我现在正在努力思考可以运行此IF的另一种方法。
这是我的完整产品FOR循环:
{% for product in collection.products %}
<div class="single-product">
<a href="{{ product.url | within: collection }}" class="box-link"></a>
<div class="product-image" style="background-image: url({{ product.featured_image.src | img_url: 'large' }});">
</div>
{% if product.collections contains 'special-offers-products' %}
<div class="special-offer-banner">
Special<br/>
Offer!
</div>
{% endif %}
<div class="product-information">
<p class="product-title">{{ product.title }}</p>
<p class="product-vendor">{{ product.vendor }}</p>
<p class="product-price">{{ product.price | money }}</p>
{% unless product.available %}
<br><strong>sold out</strong>
{% endunless %}
<div class="product-buttons">
{% include 'view-button' %}
{% comment %}{% include 'add-to-cart-button' %}{% endcomment %}
</div>
</div>
</div>
{% else %}
<p>no matches</p>
{% endfor %}
如何正确检查当前被环回的产品是否也放置在另一个收藏夹中?
我不想知道如何使用“特惠产品”集合创建单独的产品集合,这需要在相同的所有产品集合循环中完成。
您实际上非常亲密。
让您感到困惑的是,product.collections
返回集合对象而不是集合句柄。
所以您可以改为这样做。
{%- assign collection_handles = product.collections | map: 'handle' -%}
{% if collection_handles contains 'special-offers-products' %}
<div class="special-offer-banner">
Special<br/>
Offer!
</div>
{% endif %}
然后这应该可以使用您当前的逻辑。