【问题标题】:Shopify check if Metafield exists?Shopify 检查 Metafield 是否存在?
【发布时间】:2016-12-01 23:27:41
【问题描述】:

如果产品的元字段为空,我希望隐藏内容,但现在它正在为所有页面返回它,这意味着我的 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>

任何帮助都会很棒

编辑

添加评论元字段布局

【问题讨论】:

    标签: shopify liquid


    【解决方案1】:

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

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

    如果您想确保拥有三个密钥,也可以使用size。这里我们简单的输出大小:

    {{ product.metafields.review.size }}
    

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

    【讨论】:

    • 工作就像一个绝对的魅力 - 非常感谢@Jason
    【解决方案2】:

    Liquid 中的真实性不像 Javascript。我已经被这个咬过几次了:

    你的测试应该是:

    {% if product.metafields.review == true %}
    ...
    {% endif %}
    

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

    【讨论】:

    • 这似乎是在删除代码,即使当前产品存在元字段?
    • 您是否使用了正确的命名空间?查看我编辑的答案
    • 将我的元字段命名空间表添加到问题中。他们都在审查中,检查了一个存在元字段的产品,但他们仍然没有出现:(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-15
    • 1970-01-01
    • 2015-10-18
    • 2018-09-10
    • 2011-05-09
    • 2012-10-15
    相关资源
    最近更新 更多