Shopify テーマ、Liquid、ロゴ、その他の類似トピック
商品には複数のコレクションが登録してあり、その複数の中に1つでも条件に合うコレクションが含まれていればボタンを表示、または非表示にしたいと思っています。
最初は
{% for collection in product.collections %}
を使ってif文で
{% if collection.handle == 'コレクションA' or 'コレクションB' or 'コレクションC' %} ボタン非表示 {% else %} ボタン表示 {% endif %}
(そのコレクション名が含まれていないコレクションの商品だけボタンを表示させたかった)
で書いていたのですが、複数のコレクションに登録しているため、登録しているコレクション分ボタンが表示されてしまい(4個とか5個とか)、for文で書くのではなくURLで条件分岐しようとしました。
{% if request.path contains '/collections/コレクションA' or '/collections/コレクションB' or '/コレクションC' %} ボタン非表示の時のコード(空ではなくボタンではないコードが入ります) {% else % } ボタン表示の時のコード {% endif %}
上記だとすべての商品ページでボタン非表示の時のコードとなります
それ以外のところで、そのコレクションに含まれていないページだけ表示させたいものがあったので
{% unless request.path contains '/collections/コレクションA' or '/collections/コレクションB' or '/コレクションC' %} 表示させたいもの {% endunless %}
としたのですが、どのURLでも表示されません。
複数登録しているコレクションの中にA, B, Cのいずれかが入っている場合でボタンを非表示にする場合、それ以外のコレクションではボタン1つだけ表示したい場合は、どのように書くのが正しいでしょうか。
よろしくお願いいたします。
Aika827様
ご質問を確認しました。
いただいた質問の想定通りかはわかりかねますが、
下記コードの形でボタン表示、非表示を決められるのはいかがでしょうか?
{% assign hideButton = false %}<!-- 最初はボタン表示する想定 -->
{% for collection in product.collections %}
{% if collection.handle == 'コレクションA' or 'コレクションB' or 'コレクションC' %}
{% assign hideButton = true %}
{% endif %}
{% endfor %}
{% if hideButton == true %} <!-- 一つでもボタンを非表示にしたいコレクションが含まれていたら -->
ボタン非表示
{% else %}
ボタン表示
{% endif %}
ご参考までに。
フルバランス 園畑
株式会社フルバランス 園畑様
ご回答いただきありがとうございます。ご教示いただいたコードにて試してみたのですが、登録コレクションに関わらず、全ての商品ページで「hideButton = true」の状態としてボタンが非表示の状態になってしまいました。trueをfalseに変えると表示は変わるのですが、常に全商品同じ表示になります。
URLで試しても同じ状態だったので、コレクションをうまく取得できていないのでしょうか。。
コレクションを確認していたところ、コレクションA, B, Cを自動でまとめるコレクションDがあり、hundleではなくtitleで
collection.title == 'コレクションD'
とすると思い通りの表示になりました (hundleの時はきちんとURLのハンドルを入れていました)
なぜかhundleでは反応せず、titleだとOKでした。
titleも'A' or 'B' or 'C'では全商品が対象になっていたので、今回のtitleでなぜうまくいったのかがわからないのですが、おかげさまで無事に解決しました🙏
ありがとうございました。
いつもShopifyをご利用いただき、ありがとうございます。 Shopifyは、皆様の日本語での利用体験の向上に努めております。さらなる改善のために皆様のご意見をお寄せい...
By JasonH May 9, 2025Shopify アカデミーの学習パスと認定スキルバッジExpanding Your Shopify Business Internationallyを活用して、国際的にビジネ...
By Shopify Feb 7, 2025Shopify アカデミーの学習パスB2B on Shopify:立ち上げとカスタマイズで卸売販売に進出しましょう。これら3つの無料コースは、ShopifyストアでB2B機能...
By Shopify Jan 31, 2025