【问题标题】:If Statement for Collection Metafield - Shopify集合元字段的 If 语句 - Shopify
【发布时间】:2017-03-03 12:11:42
【问题描述】:

我已将元字段添加到我的 Shopify 商店中的集合中。我有一个命名空间、键和值。我正在寻找一个液体代码 sn-p 来检查集合是否具有特定的元字段键,然后如果有,则输出分配的值。

我尝试了以下方法但没有成功:

{% if relationship = collection.metafields.parent %}
    <span>{{ relationship.parent[value] }}</span>
 {% endif %}

有人知道我如何实现这个功能吗?

谢谢。

【问题讨论】:

  • 变量relationshipvaluecollection.metafields.parent里面是什么? collecation.metafields.parent 不会只是命名空间而不是特定的元字段吗?
  • 注意:不能在 Liquid 的 if 语句中分配变量!

标签: if-statement e-commerce shopify liquid


【解决方案1】:

我想如果您想检查元字段是否存在,或者更具体地说是元字段中是否存在值,您可以这样做:

{% if collection.metafields.parent['metafield_name'] %}
  <span>{{ collection.metafields.parent['metafield_name'] }}</span>
{% endif %}

这是获取元字段中包含的任何内容的值,并检查它是否返回真值或假值。如果值是真实的(如果元字段中有文本),它将输出到屏幕。

【讨论】:

  • 由于空白元字段是 false-y,您不需要 .size &gt; 0 部分,不是吗?
  • @DaveB 是否有相关文档,因为任何时候我 console.info() 一个空的元字段我得到的只是空虚?
  • 我认为console.log/info/warn 将中止并且如果什么都不通过则不做任何事情。您可以尝试console.info({{ metafield | json }})console.info('Metafield:', {{ metafield | json }}) 以确保总能打印到控制台
  • 我一直使用它的方式是console.info('{{ metafield_blah }}'),它也永远不会返回一个空的console.info。当元字段中没有任何内容时,console.info 只会传递一个空字符串。这就是我所说的“空虚”的意思,因为它没有说 false-y 或任何东西。它什么也不返回。但无论哪种方式,您仍然是正确的,.size &gt; 0 不是必需的,并且 OP 可能只是坚持测试该值是否为真/假而不使用 .size
  • 更新了我的答案@DaveB 以删除.size 比较。
猜你喜欢
  • 1970-01-01
  • 2019-03-20
  • 2014-11-02
  • 2015-08-08
  • 1970-01-01
  • 2019-06-02
  • 1970-01-01
  • 1970-01-01
  • 2020-06-08
相关资源
最近更新 更多