あなたの質問に答えるのが少し遅れましたが、これは同じ問題に苦しんでいる他の誰かを助けるかもしれません. Liquidロジックがそうである傾向があるため、少しハックですが、機能します(少なくとも私にとっては、Shopifyで)。
次のような「ページ」配列があると仮定します。
pages = [
{ name: 'Page 1', category: { name: 'pants' } },
{ name: 'Page 2', category: { name: 'pants' } },
{ name: 'Page 3', category: { name: 'shoes' } },
{ name: 'Page 4', category: { name: 'shirts' } },
{ name: 'Page 5', category: { name: 'shoes' } }
]
このコードは、一意のカテゴリ名のみを返します。
{% assign delimiter = "," %}
{% assign names_str = "" %}
{% assign names = pages | map: 'category' | map: 'name' %}
{% for name in names %}
{% assign names_arr = names_str | split: delimiter %}
{% unless names_arr contains name %}
{% assign names_str = names_str | append: delimiter | append: name %}
{% endunless %}
{% endfor %}
{% assign names_uniq = names_str | remove_first: delimiter | split: delimiter %}
結果:
names_uniq => [ 'pants', 'shoes', 'shirts' ]