Shopify Liquid如何在assign或capture标签中使用for循环索引变量?

时间:2015-09-30 19:39:34

标签: for-loop interpolation shopify liquid

我刚刚在Shopify网站上进行了一些液体模板编码。在assign或capture标签中定义变量名时,如何使用for循环索引/变量?即:我试图压缩代码以从顺序编号的设置创建多个链接菜单,其中[i]将是设置键中2到4之间的数字。

将该数字插入的正确语法是什么 a)像if语句或赋值的标签。 b)内插文本,如下面的h3元素。 c)一个嵌套/括号的关键语句(对不起,如果它不是它所谓的,我还在学习),就像在第二个语句中一样。

{% for i in (2..4) %}
    {% if settings.footer_quicklinks_enable[i] %}
        <div class="grid-item medium--one-half large--three-twelfths">
          <h3>{{ 'layout.footer.quick_links{{i}}' | t }}</h3>
          <ul>
            {% for link in linklists[settings.footer_quicklinks_linklist[i]].links %}
              <li><a href="{{ link.url }}">{{ link.title }}</a></li>

            {% endfor %}
          </ul>
        </div>
    {% endif %}
    {% endfor %}

1 个答案:

答案 0 :(得分:2)

您需要使用square bracket notation代替点表示法。

创建一个包含变量名称(包含assigncapture)的字符串,然后使用方括号表示法访问具有该名称的设置。

例如:

{% capture var %}footer_quicklinks_enable_{{i}}{% endcapture %}
{% if settings[var] %}      

另见this similar answer