使用字符串创建 Liquid 变量

Using a string to create a Liquid variable

在我的 shopify 商店中,我正在使用 SuperFields 来自定义我的网站,但我的问题与该应用程序无关。在我的一个页面上,我需要以下值:

variant.metafields.sf_{{ collection.title | downcase }}[meta_tag_key]

取值应该是0或者1,如果我直接对语句求值,比如:

{if variant.metafields.sf_{{ collection.title | downcase }}[meta_tag_key] =1%}

它在我呈现页面时抛出错误:意外字符“{”

我也试过以下方法:

{% capture defaultImage %}variant.metafields.sf_{{ collection.title | downcase }}[meta_tag_key]{% endcapture %}
{% assign test = defaultImage %}

但是 'test' 被认为是 nil,return 没有任何价值。我试图在这里和 shopify 论坛上搜索答案,但是,正如我笨拙的 post 标题所暗示的那样,我很难简明扼要地搜索这个问题的解决方案。非常感谢任何帮助。

您的代码中缺少 % 符号。因此出现错误消息。您的 if 语句以 {% 而不仅仅是 {

你可以试试:

{% assign metafield-key = collection.title | downcase | prepend: "sf_" %}
{% assign key = variant.metafields[metafield-key][meta_tag_key] %}
{% if key == 1 %}
  Do the twist !
{% endif %}

如果您在液体中工作,那么您必须使用 {% %} 来定义任何变量以及 shopify 中的条件。你不能使用 { this.