液体新手在这里找人帮忙。我在每个集合中有两个集合和一个产品,它们具有相似的名称:
(收藏)小吃店>(产品)巧克力片
(收集)蛋白质棒>(产品)薄荷巧克力芯片
我试图根据集合和产品句柄隐藏/显示特定于这些项目的内容(在同一页面中)。我试过以下几种方法,但这显示了这两种产品--尽管==应该是特定的,但它并不是,而且显示出来--因为它认为巧克力片和巧克力片薄荷是匹配的,但它不是:
{% if product.handle == "chocolate-chip" %} // do something {% endif %}我试过了,但没办法:
{% if collection == "protein-bars" && product.handle == "mint-chocolate-chip" %} // do something {% endif %}我也试过这种方法,但不起作用:
{% if product.handle == "mint-chocolate-chip" | within: collections.protein-bars %} // do something {% endif %}最后,我只想验证一下,如果我在一个产品页面上,我的逻辑检查:
https://www.blakesseedbased.com/collections/snack-bars/products/chocolate-chip
https://www.blakesseedbased.com/collections/protein-bars/products/mint-chocolate-chip
你可以在薄荷巧克力芯片页面上看到逻辑相信“巧克力芯片”是一种产品匹配,并在薄荷巧克力芯片页面(在产品显示下的白色部分)上显示巧克力芯片的信息。
发布于 2018-11-01 19:09:37
在写你的液体陈述时,要记住一些事情:
and和or进行比较。示例:{% if product.price > 1000 and product.price < 2000 %}and或or。if (或unless)语句中使用筛选器--首先要使用assign创建变量,首先应用所有筛选器,然后对其进行比较。==、>、<和!=之外,您还可以在语句中使用contains。如果在字符串上使用contains,则将匹配一个子字符串;如果在数组上使用contains,则将匹配数组中的确切值。(注意:不能对复杂对象数组(如变体数组)使用contains )collection.handle )测试集合。map过滤器是一种方便的方法,可以将复杂对象数组简化为简单字段数组。所以你可以做点什么:
{% assign product_collections = product.collections | map: 'handle' %}
{% if product_collections contains 'my-special-collection' and product.handle == 'my-special-handle' %}
<h2>Hi Mom!</h2>
{% endif %}https://stackoverflow.com/questions/53104158
复制相似问题