如何在带有范围的液体中进行for循环

时间:2015-02-18 10:22:34

标签: php html shopify liquid

我试图在我的模板中使用for循环遍历字母表中的每个字母,如果找到字母表的第一个字母,则打印出该数据。

我找不到办法做到这一点,我知道如何在PHP中做到这一点,但不能让它在液体中工作。

{% for range('a','z') as $i %}   

    {% if first_letter == $i %}

        {% unless first_letter == current %}

            <li class="test"><h2 id='{{ first_letter }}'>{{ first_letter }}</h2> </li>

        {% endunless %}

        <ul><li class="test"> {{ product_vendor | link_to_vendor  }} </li>    </ul>

        {% assign current = first_letter %}

    {% endif %}
{% endfor %}

前两行是什么在这里不起作用,我知道语法不正确,但我无法弄清楚如何让它工作。

2 个答案:

答案 0 :(得分:1)

循环液体范围的语法是here in the Shopify docs

{% assign num = 4 %}
{% for i in (1..num) %}
  {{ i }} 
{% endfor %}

{% for i in (3..5) %}
  {{ i }} 
{% endfor %}

但是,您只能使用范围内的数字,而不能使用字符串。

你见过this article吗?也许这种方法适用于您的情况。

修改: Updated link for above article

答案 1 :(得分:0)

我们在这里谈论液体,所以你没有很多选择。这样可以正常工作,但请确保完成字母表。

{% assign letters = "a b c d e f g h i j" | split: ' ' %}
{% for letter in letters %}
    {% if letter == 'g' %}
         <!-- Letter {{ letter }} match! -->
    {% endif %}
{% endfor %}