Shopify检查Metafield是否存在?

时间:2016-12-01 23:27:41

标签: shopify liquid

如果某个产品的元字段为空,我希望隐藏内容,但现在它将为所有页面返回它,这意味着我的if语句在某处被破坏了。

产品页面

{% if product.metafields.review %}
  {% include 'extra-review' %}
{% else %}
{% endif %}

查看代码段页面(extra-review.liquid)

{% assign review = product.metafields.review %}
{% assign key = 'author' %}
{% assign key = 'author-img' %}
{% assign key = 'long' %}

<p> Hello world </p>

任何帮助都会很棒

修改

添加了审核元字段布局

enter image description here

2 个答案:

答案 0 :(得分:7)

要检查命名空间是否存在,您可以对blank进行比较。例如:

{% if product.metafields.review != blank %}
  ...
{% endif %}

如果您想确保有三把钥匙,也可以使用size。这里我们只输出大小:

{{ product.metafields.review.size }}

有关truthy / falsy的更多信息可以在Shopify文档中找到: https://help.shopify.com/themes/liquid/basics/true-and-false

答案 1 :(得分:2)

Liquid中的真实与Javascript不同。我已经被这几次咬过了:

您的测试应该是:

review

product.metafields.review中的/是评论元域的命名空间。见https://help.shopify.com/themes/liquid/objects/metafield