FROM CACHE - jp_header
このコミュニティはピアツーピアサポートに移行しました。Shopify サポートは今後、このコミュニティへのサービスを提供いたしません。これからもぜひ、他のマーチャントやパートナーとつながり、サポートし合い、経験を共有してください。 当社の行動規範に違反する行動や削除を希望するコンテンツがありましたら、引き続きご報告ください

ピックアップした複数のタグを、一覧にして表示させたい

ピックアップした複数のタグを、一覧にして表示させたい

Go1000
観光客
5 0 0

全商品のタグの中から、タグをいくつかピックアップして、それを一覧にして表示させたいのですが、うまく行きません。過去スレッドやネットなどいくつか参考にさせていただいて、タグを表示させられるところまではできたのですが、タグ名を入れている箇所を複数個に変更して入れると、うまく表示されません。複数ではなく1個だけだと表示されます。表示されたのが下記に添付しているコードです。

「{% if tag contains 'AAA' %}」の箇所を、「{% if tag contains 'AAA' or tag contains 'BBB' or tag contains 'CCC' %}」のように表示を増やせばよいのかと思い試みたのですが、ダメでした。

「含む」ではなく「一致する」タグ名を複数個ピックアップする場合は、そもそも「if」や「contains」を使わないのでしょうか。

どうすれば表示されるかご教示いただきたく。

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

 

{% assign tag_list = "" %}

{% for product in collections.all.products %}
{% for tag in product.tags %}
{% if tag contains 'AAA' %}
{% 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 %}


<div id="section-tags-list">
  <div class="container">
    <h2 class="tags-heading">
    {{ section.settings.title | escape }}
    </h2>
    <ul class="tag-list">
      <div class="listed-tags-{{ section.id }}">
        <ul>
        {% for tag in tag_array %}
          <li><a href="/collections/all/{{ tag }}" class="button button---secondary button-pills">#{{ tag }}</a></li>
        {% endfor %}
        </ul>
     </div>
  </ul>
  </div>
</div>

 

 

3件の返信3

Jizo_Inagaki
Shopify Partner
1183 425 720

記載されている or で繋ぐ方法は動くと思いますので、各段階で値を確認することをお勧めします。

 

他方、以下のように少ない行数で書くこともできるかなと思います。

{% for tag in collections.all.tags %}
  {% if tag == 'tag_a' or tag == 'tag_b' or tag == 'tag_c' %}
      {{ tag }}<br>
    {%  endif  %}
{% endfor %}

 

参考:

https://shopify.dev/docs/api/liquid/objects/collection#collection-tags

Jizo_Inagaki | フリーランスのwebデザイナー
- テーマのカスタム承れます。
- 記載した回答で解決できましたらベストソリューションの承認をお願いします。
- DMや指名による対応はご依頼として有料でのみ承ります。

NIIGAKI_HYUGA
Shopify Partner
54 24 16

@Go1000 

初めまして。新垣です。

 

Liquidの記述にミスは見当たりませんし、私のテストストアでは下記いずれの記述でも複数個表示されます。

{% if tag == 'Winter' or tag == 'Sport' %}
{% if tag contains 'Winter' or tag contains 'Sport' %}

 

なので、表示したい該当タグの記述ミスや、CSSおよびコード記述箇所での要素崩れ等を確認すると良いかと思います。

 

以上、参考になりましたら幸いです。

Freelance Solution Engineer | 新垣
JavaScript Liquid Theme, React Remix App
投稿は参考になりましたか?「いいね!」でお教えください。
解決しない場合、個別に対応も可能ですのでプロフィールからお気軽にメッセージください
Go1000
観光客
5 0 0

早々にご確認いただきありがとうございます。

先にお伝えすると、解決しました!ありがとうございます。

 

Liquidの記述にミスがないとお聞きし、まずとても安心しました。

なので、他がダメなのだと、色々調べました。

タグ全表示のコードに書き換えてみると、全タグが表示されず一部のタグしか表示されていないことが分かりました。

そこで、全て表示されないことを改めてネットで検索したら、タグが多すぎると表示されないことが分かりました…。

ネットに下記のように記載するとよいと書かれているのを参考にさせていただきました。

Shopify 商品が全部表示されないとき|まる (note.com)

{% paginate collections.all.products by 1000 %}
  {% for product in collections.all.products %}
   ・・・
  {% endfor %}
{% endpaginate %}

 by 1000のように記載すれば良いとのことで、解決しました!

 

こちらに加えて、教えていただいた下記コードで記述すると、後程見やすいので、こちらで表示したいタグを追加していこうと思います。

{% if tag == 'Winter' or tag == 'Sport' %}

 

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