Я пытаюсь создать в своем шаблоне цикл 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 %}
Две верхние строки — это то, что здесь не работает, я знаю, что синтаксис неверен, но я не могу понять, как заставить это работать.
Синтаксис для диапазонов в жидкости для петель здесь, в Shopify документы:
{% assign num = 4 %}
{% for i in (1..num) %}
{{ i }}
{% endfor %}
{% for i in (3..5) %}
{{ i }}
{% endfor %}
Однако вы можете использовать только числа в диапазоне, а не строки.
Ты видел Эта статья? Может быть, такой подход будет работать в вашей ситуации.
Редактировать: Обновлена ссылка на вышеуказанную статью.
Мы говорим о жидкости здесь, поэтому у вас не так много вариантов. Это будет хорошо работать, но убедитесь, что вы завершили алфавит.
{% 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 %}