我目前正在shopify网站上工作,需要在产品页面上创建过滤器。我的目标是在产品收集页面的不同部分显示底漆。我遇到的问题是如何过滤引物。我们在名为" Primer"的产品页面中设置了标签。我想要的是循环检查产品是否具有引物标签,如果是,则将其显示为循环中的产品之一。我对Liquid比较新,所以如果可能,我不知道如何结合条款。我抬头看了" Where"条款,但不完全理解它是如何运作的。
以下是代码:
<div class="{% if settings.show_collection_sidebar %}desktop-10{% else
%}desktop-12{% endif %} tablet-6 mobile-3" id="bside">
<div id="product-loop">
{% for product in collection.products %}
<div class="product {% if settings.products_per_row == '3' %}
desktop-4{% cycle ' first', '', ' last' %}
{% elsif settings.products_per_row == '4' %}
desktop-3{% cycle ' first', '', '', ' last' %}
{% endif %} tablet-half mobile-half"
id="prod-{{ product.id }}"
data-alpha="{{ product.title }}"
data-price="{{ product.price }}">
{% include 'product-listing' %}
</div>
{% endfor %}
</div>
</div>
我如何过滤所需的结果?我在很多地方试过{% if product.tags contains 'Primer' %}
,但无济于事。
感谢您的帮助。
答案 0 :(得分:0)
您是否考虑过使用两个系列来完成您的目标?
如果您为所有引物制作了一个动态(“智能”)集合(让我们假设该集合的句柄是'引物'),您可以随时通过Liquid访问该集合:
{% assign primer_collection = collections['primer'] %}
{% for product in primer_collection.products %}
<h2>HAVE SOME {{ product.title }}!</h2>
{% endfor %}
然后,如果您想要从主要系列中排除所有的底漆产品,请创建一个名为“all”的集合(或至少使用“all”句柄 - 实际标题并不严格 - 请参阅脚注) 。默认情况下,“全部”集合的名称与商店中的每个产品相同。但是,如果您创建自己的“全部”集合,则可以将其定义为“除了某些项目之外的所有内容” - 在您的情况下,“除引物之外的所有内容”
让Shopify通过收藏本身为您预先过滤所有内容,这大大减少了尝试在事后应用过滤器以及处理误导性项目计数,不均匀分页等的麻烦。