如何解决液体-了解“ where”的用法
我正在尝试在shopify中创建一个导航菜单,如果客户有标签“ X”并且该标签 IS ,然后在菜单中显示相应的收藏链接。尽管我不确定我是否正确理解了“ where”属性的使用。
我对液体完全新鲜,所以请原谅。
根据文档,位于here。 “在哪里”创建一个数组,该数组仅包含具有给定属性值的对象,或者默认情况下包含任何真实值的对象。因此,从理论上讲,我认为我可以在链接数组中使用它。
这是文档的示例
All products:
{% for product in products %}
{{ product.title }}
{% endfor %}
{% assign kitchen_products = products | where: "type","kitchen" %}
Kitchen products:
{% for product in kitchen_products %}
{{ product.title }}
{% endfor %}
Output:
All products:
- Vacuum
- Spatula
- Television
- Garlic press
Kitchen products:
- Spatula
- Garlic press
这是我的尝试
<!-- custom collection loop for sidebar navigation -->
{% if customer.tags != blank %}
{% assign link = linklists.main-collections.links | where: link.title,customer.tags %} // This line in particular...
{% for link in linklists.main-collections.links %}
{% assign outer_index = forloop.index %}
{% if link.links != blank %}
{% assign has_active_link = false %}
{% if link.active or link.child_active %}
{% assign has_active_link = true %}
{% endif %}
<li class="site-nav--has-submenu site-nav__item"></li>
{% else %}
<li class="site-nav__item {{ collection.handle }}-collection {% if link.active %} site-nav--active{% endif %}">
<a href="{{ link.url }}" class="site-nav__link" {% if link.active %} aria-current="page" {% endif %}>{{ link.title | escape }}</a>
</li>
{% endif %}
{% endfor %}
{% endif %}
<!-- / end custom collection loop for sidebar navigation -->
任何有关我这里问题的指导都将不胜感激。
进一步说明:
客户A具有标签Apple,Pear,Peach
存在苹果,梨桃的收藏
预期输出:
<ul>
<li><a href="/apple">Apple</a></li>
<li><a href="/pear">Pear</a></li>
<li><a href="/peach">Peach</a></li>
</ul>
解决方法
由于两种原因,它无法正常工作。
-
where
的第一部分采用link
对象的字段属性键。因此应该是link.title
而不是"title"
- 第二部分应该是完全匹配的条件,例如“ Apple”或“ Pear”。
customer.tags
是一个数组,或如Shopify称其为“放置”。
在这里,由于标签始终是唯一的,因此我们不需要使用where
您需要循环标记和链接。试试这个循环
{% if customer.tags.size >0 %}
{% for tag in customer.tags %}
{% for link in linklists.main-collections.links %}
{% if link.title == tag %}
... do magic here ...
{% endif %}
{% endfor %}
{% endfor %}
{% endif %}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。