首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Liquid中组合for和where子句

如何在Liquid中组合for和where子句
EN

Stack Overflow用户
提问于 2017-04-27 01:58:12
回答 1查看 275关注 0票数 0

我目前在一个购物网站上工作,需要创建一个产品页面上的过滤器。我的目标是让底漆出现在产品收藏页面的不同部分。我遇到的问题是如何过滤引物。我们在产品页面中设置了一个名为"Primer“的标签。我想要的是让循环检查产品是否有引物标签,如果有,则将其显示为循环中的产品之一。我对Liquid比较陌生,所以如果可能的话,我不知道如何组合子句。我查过"Where“子句,但不完全理解它是如何工作的。

下面是代码的原样:

代码语言:javascript
复制
<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' %},但都没有用。

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2017-05-04 00:45:28

你是否考虑过使用两个集合来完成你想要的东西?

如果您为所有引物创建了一个动态("Smart")集合(假设集合的句柄为“primer”),则可以随时通过Liquid访问该集合:

代码语言:javascript
复制
{% assign primer_collection = collections['primer'] %}
{% for product in primer_collection.products %}
<h2>HAVE SOME {{ product.title }}!</h2>
{% endfor %}

然后,如果您想从主集合中排除所有入门产品,请创建一个名为' all‘的集合(或者至少使用句柄'all’-严格地说,实际标题无关紧要-请参阅脚注)。默认情况下,“All”集合名副其实地是商店中的所有产品。但是,如果您创建了自己的'all‘集合,则可以将其定义为“除某些项之外的所有项”--在您的示例中,是“除primer之外的所有项”。

让Shopify通过集合本身为你预先过滤一切,极大地减少了试图事后应用过滤器和处理误导性项目计数、不均匀分页等令人头疼的问题。

  • 处理:在您的购物管理中的每个集合和产品的底部是搜索引擎优化设置。编辑这些允许您更改集合/产品的句柄,这就是Shopify用来在内部查找您的集合/产品的
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43641374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档