Я был в цикле по массиву коллекций и пытался получить продукты каждой коллекции, но это все еще не работает ??
<div class="products_nav">
{% capture collections_list %}
{% for link in linklists[block.settings.meganav_link].links %}
{{ link.title }}
{% endfor %}
{% endcapture %}
{% assign collections_array = collections_list %}
{% for products in collections_array %}
{% for category in products %}
{% for product in collections[category].products %}
{% include 'product-grid-item' %}
{% endfor %}
{% endfor %}
{% endfor %}
</div>
capture
Команда захватит вывод всего между {% capture x %}
а также {% endcapture %}
как текст и назначить этот текст переменной x
, Итак, ваш код:
{% capture collections_list %}
{% for link in linklists[block.settings.meganav_link].links %}
{{ link.title }}
{% endfor %}
{% endcapture %}
…будет захватывать только серию разрывов строк и заголовков ссылок, так как это весь текст, который печатается.
Что вы, вероятно, хотите сделать, это получить объект, представляющий фактический элемент в списке. Быстрый прыжок к Shopify’s Liquid Reference показывает нам, что link
объекты имеют свойство удобно называть object
, которая ссылается на то, на что указывает ссылка, — это может быть продукт, коллекция, страница или блог.
Если вы знаете, что каждая ссылка будет коллекцией, вы можете написать что-то вроде этого:
{% for link in linklists[block.settings.meganav_link].links %}
<h2>{{ link.title }}</h2>
{% assign linked_collection = link.object %}
{% for product in linked_collection.products %}
{% include 'product-grid-item' %}
{% endfor %}
{% endfor %}
Если ваш список ссылок более сложный и существует сочетание типов объектов, вы, вероятно, захотите проверить link.type
и действуйте соответственно. Опять же, у Shopify Liquid Reference есть своя спина, когда дело доходит до того, какие есть разные возможные типы.
Надеюсь это поможет!
Других решений пока нет …