Вы можете получить сводный список вложенных свойств, используя фильтр map
в своем коде Liquid, а фильтр map
позволяет довольно эффективно разбирать вложенные объекты.
Таким образом, чтобы получить массивиз всех уникальных дескрипторов коллекции, используемых всеми продуктами в вашей коллекции, мы можем быстро получить требуемую информацию:
{% assign collection_handles = collection.products | map: 'collections' | map: 'handle' | uniq %}
Это создает массив всех дескрипторов коллекции всех продуктов внутри коллекции., а затем сводит их к уникальным (используя фильтр uniq
).Примечание: uniq
необходимо работать с числом, строкой или другим простым полем - вот почему нам нужен был массив дескрипторов коллекции, а не массив объектов коллекции.
Так что теперь вы можете выполнять циклas:
{% for handle in collection_handles %}
{% assign collection = collections[handle] %}
<!-- All your awesome stuff here -->
{% endfor %}
Надеюсь, это поможет!