如何在Liquid

时间:2017-04-26 17:58:12

标签: shopify liquid

我目前正在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' %},但无济于事。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您是否考虑过使用两个系列来完成您的目标?

如果您为所有引物制作了一个动态(“智能”)集合(让我们假设该集合的句柄是'引物'),您可以随时通过Liquid访问该集合:

{% assign primer_collection = collections['primer'] %}
{% for product in primer_collection.products %}
<h2>HAVE SOME {{ product.title }}!</h2>
{% endfor %}

然后,如果您想要从主要系列中排除所有的底漆产品,请创建一个名为“all”的集合(或至少使用“all”句柄 - 实际标题并不严格 - 请参阅脚注) 。默认情况下,“全部”集合的名称与商店中的每个产品相同。但是,如果您创建自己的“全部”集合,则可以将其定义为“除了某些项目之外的所有内容” - 在您的情况下,“除引物之外的所有内容”

让Shopify通过收藏本身为您预先过滤所有内容,这大大减少了尝试在事后应用过滤器以及处理误导性项目计数,不均匀分页等的麻烦。

  • 句柄:在Shopify管理员的每个集合和产品的底部是SEO设置。编辑这些可以让您更改集合/产品的句柄,这就是Shopify用于在内部查找您的集合/产品的内容