特定のタグだけを取り出した一覧を表示したい

Topic summary

目的: トップページで用途に関する商品タグ(末尾が -use)のみを抽出して一覧表示し、「用途から探す」を実装。表示時に「-use」を非表示にしたい。
進捗: Liquid で -use 付きタグの抽出と重複排除まで実装済み(collections.all.products を走査し、tag contains ‘use’ で抽出)。
課題: 一覧出力が「#(タグ名)-use」となるため、「-use」のみを除去したい。
解決策: 表示部分を {{ tag | replace: ‘-use’,‘’ }} に変更し、Liquid の replace フィルタで「-use」を空文字に置換。
結果: 提案が有効に動作し、質問者が解決を確認。追加のスマートな代替手段の提示はなし。

Summarized with AI on February 16. AI used: gpt-5.

トップページに、商品タグの中でも用途に関するタグだけを取り出して一覧表示して、「用途から探す」というコンテンツを作りたいです。

1商品に対し複数の用途を設定するため、メタフィールドではなくタグを使用して、

用途に関するものだけ、タグ名の後に「-use」を付けて分け、

-useの付いたタグだけを一覧表示するところまでは成功しました。

{% assign tag_list = "" %}

{% for product in collections.all.products %}
{% for tag in product.tags %}
{% if tag contains 'use' %}
{% assign tag_list = tag_list | append: "," | append: tag %}
{% endif %}
{% endfor %}
{% endfor %}

{% assign tag_list = tag_list | remove_first: "," %}
{% assign tag_array = tag_list | split: "," | uniq %}

## 
{{section.settings.title}}

{% for tag in tag_array %}
- #{{ tag }}
{% endfor %}

この後、現在「#(タグ名)-use 」となっている表示の、-useの部分を非表示にしようと

下記のサイトを参考にいろいろやってみたのですが、うまく組み込むことができません。

https://im-sosleepy.com/webproduction/product-tags/

どうすれば実現できるか、ご教示いただけますでしょうか。

もしもっとスマートな方法があるようでしたら、あわせてアドバイスをいただけると幸いです。

よろしくお願いいたします。

もっとスマートな方法、は私も思いつかないため、

「#(タグ名)-use 」となっている表示の、-useの部分を非表示にする方法、の方だけお知らせします。

こちらのコードを、

- #{{ tag }}

下記のようにしていただけば、実現できるかと思います。

- #{{ tag | replace:'-use','' }}

replaceフィルタの詳細(?)は下記です。

https://shopify.github.io/liquid/filters/replace/

ご参考まで。

(キュー田辺)

1 Like

これで十分です!助かりました。

ありがとうございました。