Я предполагаю, что вы новичок в жидком языке, поэтому я опишу его как можно более четко.
Для циклов
В жидкости есть два типа циклов FOR.
1) Стандартный, где вы перечисляете все элементы массива:
{% for product in collection.products %}
, где collection.products
- это массив продуктов.
2) Ручной массив, который выпытаются построить
{% for i in (1..5) %}
Где 1 - начальный индекс, а 5 - окончание.
Жидкий синтаксис
Существует два типа жидкого синтаксиса.
{{ }}
и
{% %}
{{ }}
используется для вывода контента, а {% %}
используется для логики жидкости (если / assign / capture / for etc ... )
Ошибки в вашем коде
{%- assign this_link = "block_"{{NUMBER}}"_link" %}
Это неверный синтаксис. Вы не можете иметь жидкость внутри жидкости. Если вы хотите сделать это так, правильный путь будет:
{%- assign this_link = "block_" | append: NUMBER | append: "_link" %}
или
{% capture this_link %}block_{{NUMBER}}_link{% endcapture %}
Кроме того, {{this_link}}
выведет строку "block_1_link"
а не переменная block_1_link
.
Чтобы вывести переменную, вам нужно будет заключить ее в квадратные скобки, например {{[this_link]}}
, поскольку вы присваиваете ей строку.
Я предполагаю, что вы изучаете, но этот синтаксис, вероятно, никогда не появится в реальном проекте, потому что у вас не должно быть статических переменных
Как должен выглядеть ваш код
{%- assign block_1_link = "/collections/col-1" %}
{%- assign block_1_title = "Title 1" %}
{%- assign block_1_img = "imglink" %}
{%- assign block_2_link = "/collections/col-2" %}
{%- assign block_2_title = "Title 2" %}
{%- assign block_2_img = "imglink" %}
<div class="slick-slider-row">
<div class="wrapper">
<h2><a href="x">MyCompants</a><h2>
{% for NUMBER in (1..5) %}
{%- assign this_link = "block_" | append: NUMBER | append: "_link" %}
{%- assign this_image = "block_" | append: NUMBER | append: "_img" %}
{%- assign this_title = "block_" | append: NUMBER | append: "_title" %}
<div class="responsive carousel slider-mobile-hide">
<div class="slick-slide">
<a href="{{[this_link]}}">
<img class="lazyload" alt="{{ [this_title] }}" src="{{ [this_image] }}">
</a>
<p><a class="slider-collection-name-link" href="
{{[this_link]}}">{{[this_title]}}</a></p>
</div>
{% endfor %}