使用字符串创建Liquid变量

时间:2018-05-24 18:27:39

标签: shopify liquid

在我的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 %}

但是'测试'被认为是零并且不会返回任何值。我试图在这里和shopify论坛上搜索答案,但是,正如我笨拙的帖子标题所示,我很难简洁地寻找解决这个问题的方法。非常感谢任何帮助。

3 个答案:

答案 0 :(得分:0)

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

开头

答案 1 :(得分:0)

您可以尝试:

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

答案 2 :(得分:0)

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