{{collections['pink'].tags}}の使い方について

下記のコードで「pink」というコレクションのすべてのタグを取得したいのですが、
collectionsに適用されているすべてのタグが取得されてしまいます。
修正方法を教えていただければと思います。よろしくお願いいたします。

{{collections[‘pink’].tags}}

@Kou231

下記のコードで「pink」というコレクションのすべてのタグを取得したいのですが、

collectionsに適用されているすべてのタグが取得されてしまいます。

コレクション「pink」に所属している商品に付けられているタグを全て取得したい、

ということで合っているでしょうか?

もし、合っているようでしたら、

ご記載いただいた

{{collections[‘pink’].tags}}

で取得できると思うのですが、

それにも関わらず、質問されているということは、

下記いずれかということでしょうか?

  1. コレクション「pink」に所属している商品に付けられているタグを全て取得したい、のではない
  2. コレクション「pink」のハンドルが「pink」ではない
  3. コレクション「pink」に所属する商品の1つ、もしくはいくつかが、全てのタグを持ってしまっている

もし、1でしたら、どういった情報を取得されたいか改めてお教えいただければ幸いです。

もし、2でしたら、Dawnをお使いであれば、下記のコードを「セクション > main-list-collections.liquid」の良き場所に挿入いただけば、xxx - Collections にアクセスした際、コレクションのタイトルと、そのハンドルの組み合わせが表示されますので、目的のハンドルをお探しください。


{% for collection in collections%}
  - {{ collection.title }}:{{ collection.handle }}
{% endfor %}

もし、3でしたら、コレクション「pink」に所属する全商品に設定されているタグをご確認いただくと何かわかるかもしれません。

ご参考まで。

(キュー田辺)

回答ありがとうございます。
質問の意図が不明確で申し訳ございません。
コレクションの抽出条件のタグを取得したいと思っています。

{{collections[‘pink’].tags}}だとコレクションに所属する商品が持つタグすべてが抽出されてしまいます。

なので、下記でjson形式で情報を取得して、抽出条件のタグを取得しました。
{% assign collection_array = collection | json | remove: ‘"’ | remove: ‘{’ | remove: ‘}’ | remove: ‘[’ | remove: ‘]’ | split: ‘,’%}

もっと簡単な方法がありましたら教えていただければと思います。
よろしくお願いいたします。

@Kou231

記載いただいている内容からの推測になりますが、

下記の理解で合っているでしょうか?

  • コレクションを「自動コレクション」にし、その自動コレクションの条件にタグを使用している。
  • その自動コレクションの条件に使用しているタグを抽出したい。

上記合っているようでしたら、

下記の投稿が参考になるかと思います。

https://community.shopify.com/post/1815018

https://community.shopify.com/post/1815018

おそらく、

collection.rules

を取得されたいのだと思いますが、

どうやらそれはできないらしいので、

質問者様が実装されたように、jsonをパースしていくしかなさそうです。

簡単になるかは分かりませんが、

上記の投稿の1つを参考にして、

自動コレクションの条件がタグの場合に、

そのタグの内容を配列にして返す処理を書いてみました。

{% liquid
 assign rules = collection | json | split: ',"rules":' | last | split: ']' | first | append: ']' | split: ",{"
 assign rule_tags = ""
 for rule in rules
  if rule contains '"column":"tag"'
    assign tag = rule | split: '"condition":"' | last | split: '"' | first
    assign rule_tags = rule_tags | append: tag | append: ','
  endif
 endfor
 assign rule_tags = rule_tags | remove_last: "," | split: ","
%}

rules_tagsという変数に、自動コレクションの条件に使用したタグが配列で格納されます。

ご参考まで。

(キュー田辺)