我目前在一个购物网站上工作,需要创建一个产品页面上的过滤器。我的目标是让底漆出现在产品收藏页面的不同部分。我遇到的问题是如何过滤引物。我们在产品页面中设置了一个名为"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' %},但都没有用。
谢谢你的帮助。
发布于 2017-05-04 00:45:28
你是否考虑过使用两个集合来完成你想要的东西?
如果您为所有引物创建了一个动态("Smart")集合(假设集合的句柄为“primer”),则可以随时通过Liquid访问该集合:
{% assign primer_collection = collections['primer'] %}
{% for product in primer_collection.products %}
<h2>HAVE SOME {{ product.title }}!</h2>
{% endfor %}然后,如果您想从主集合中排除所有入门产品,请创建一个名为' all‘的集合(或者至少使用句柄'all’-严格地说,实际标题无关紧要-请参阅脚注)。默认情况下,“All”集合名副其实地是商店中的所有产品。但是,如果您创建了自己的'all‘集合,则可以将其定义为“除某些项之外的所有项”--在您的示例中,是“除primer之外的所有项”。
让Shopify通过集合本身为你预先过滤一切,极大地减少了试图事后应用过滤器和处理误导性项目计数、不均匀分页等令人头疼的问题。
https://stackoverflow.com/questions/43641374
复制相似问题