If statement 集合元字段的If语句-Shopify

If statement 集合元字段的If语句-Shopify,if-statement,e-commerce,shopify,liquid,If Statement,E Commerce,Shopify,Liquid,我已将元字段添加到Shopify商店内的集合中。我有一个名称空间、键和值。我正在寻找一个液态代码片段来检查集合是否有特定的元字段键,如果有,则输出指定的值 我尝试了以下方法,但没有成功: {% if relationship = collection.metafields.parent %} <span>{{ relationship.parent[value] }}</span> {% endif %} {%if relationship=collectio

我已将元字段添加到Shopify商店内的集合中。我有一个名称空间、键和值。我正在寻找一个液态代码片段来检查集合是否有特定的元字段键,如果有,则输出指定的值

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

{% if relationship = collection.metafields.parent %}
    <span>{{ relationship.parent[value] }}</span>
 {% endif %}
{%if relationship=collection.metafields.parent%}
{{relationship.parent[value]}
{%endif%}
有人知道我如何实现这个功能吗


谢谢。

我想如果您想检查是否存在元字段,或者更具体地说,是否存在元字段中的值,可以执行以下操作:

{% if collection.metafields.parent['metafield_name'] %}
  <span>{{ collection.metafields.parent['metafield_name'] }}</span>
{% endif %}
{%if集合.metafields.parent['metafield\u name']%}
{{collection.metafields.parent['metafield_name']}
{%endif%}

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

变量
关系
集合.metafields.parent
?难道不是
collection.metafields.parent
只是名称空间而不是特定的metafield吗?注意:您不能在Liquid中的if语句中分配变量!因为一个空的元字段是false-y,所以你不需要
.size>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只会被传递一个空字符串。这就是我所说的“空”的意思,因为它没有说假y或任何东西。它什么也不返回。但无论哪种方式,您仍然认为不需要
.size>0
是正确的,OP可能只是坚持测试值是否真实/错误,而不使用
.size
。更新了我的答案@DaveB以删除
.size
比较。