Shopify 循环通过在液体中附加_indexNumber的元字段,这些元字段需要分配给对象值以匹配特定键
我有一个动态数量的元字段进入Shopify。我有一个特殊的元字段,它告诉我要查找多少个元字段文件,我用它来指定循环量 我需要遍历这些元字段并查找特定的匹配键Shopify 循环通过在液体中附加_indexNumber的元字段,这些元字段需要分配给对象值以匹配特定键,shopify,liquid,Shopify,Liquid,我有一个动态数量的元字段进入Shopify。我有一个特殊的元字段,它告诉我要查找多少个元字段文件,我用它来指定循环量 我需要遍历这些元字段并查找特定的匹配键 numfiles这里的变量来自该元字段,该元字段给出了要循环的元字段文件总数 我试过: {% for i in (1..numfiles) %} {% assign currentMetafield = 'shop.metafields.field_name.value_name_' | append: i %} {% if curre
numfiles
这里的变量来自该元字段,该元字段给出了要循环的元字段文件总数
我试过:
{% for i in (1..numfiles) %}
{% assign currentMetafield = 'shop.metafields.field_name.value_name_' | append: i %}
{% if currentMetafield['key_i_am_matching'] %}
found a match
{% else %}
no match found :(
{% endif %}
{% endfor %}
但是这不起作用,我猜它不起作用,因为分配的currentMetafield
最终是一个字符串
我试图打印出来自循环{{currentMetafield}}
的值,其输出与我的元字段名称正确匹配。看起来是这样的:
shop.metafields.field_name.value_name_1
shop.metafields.field_name.value_name_2
shop.metafields.field_name.value_name_3
如果我手动分配元字段并查找特定的键,则效果很好
假设我知道第一个元字段文件中有一个特定的键。我可以这样分配它
{%assign metafield1=shop.metafields.field\u name.value\u name\u 1%}
然后我可以这样做:
{% if shop.metafields.field_name.value_name_1['key_i_am_looking_for'] %}
found a match
{% end if %}
这将以预测的方式返回找到匹配项的
我要么需要将该字符串转换为对象,以便shopify将其识别为正确的元字段文件,要么需要执行其他操作,以尝试在动态数量的元字段中找到匹配项
谢谢你的帮助 您需要对动态值使用捕获。试试这个代码
{% for i in (1..numfiles) %}
{% capture value %}value_name_{{i}}{% endcapture %}
{% assign currentMetafield = shop.metafields.field_name[value]%}
{% if currentMetafield['key_i_am_matching'] %}
found a match
{% else %}
no match found :(
{% endif %}
{% endfor %}
谢谢,谢谢!!它工作得很好,完全符合我的需要。我永远欠你的债!