今回はsnippetsを呼び出す際に値を渡す方法について紹介します。
開発をしていて、snippetsに商品タイトルやLiquid側で取得した特定の値を渡したい時がありました。結構調べて海外記事で解決方法を見つけることができましたので、今回解説していきます。
そして、値をsnippetsに渡すだけでなく、その値を使ったsnippetsの便利な活用方法についてもおまけ程度に書いていきますね!
Liquidでsnippetsに値を渡す方法
最初にLiquid上でsnippetsに値を渡す方法について記載していきます。
その前にまず一般的に"test-block" というsnippetsを呼び出すときは下記のように記述します。
{% include "test-block" %}
という感じです。
最近だとincludeは使わずにrenderを使うのが主流になりつつありますね。
{% render "test-block" %}
という感じです。
そして、この"test-block"のsnippetsの中身はこんな感じだと仮定しましょう。
<p>Hello EC Penguin さん!</p>
呼び出すと「Hello EC Penguinさん!」という文章が出力されますね。
では、場面に応じて "EC Penguinさん"という名前を変えたいときはどのようにするのでしょう。
ここで登場する今回紹介する『snippetsに値を渡す方法』です!
記載の仕方としては
{% include "test-block", name: "SHOPIFY" %}
とすると変数nameに"SHOPIFY"という値を入れてsnippets側に渡すことができるのです!便利。
なので"test-block"の中身を
<p>Hello {{name}}さん!</p>
としておくと、出力が「Hello SHOPIFYさん!」になるはずです。
もう一つの方法として with を使用して渡すこともできます。
例えばコレクション内で
{% for product in collection.products %}
{% include "test-block" with product %}
{% endfor %}
とするとproductを”test-block”というsnippetsに渡すこともできるのです。
snippetsに値を渡すことを応用した便利活用方法
Liquidでsnippetsに値を渡す方法を応用して、とても便利な小技(チョコの小枝みたい、小ワザです笑)も紹介してみます。
まずはsnippets内の記述を見てみます。例えば
{% if name == "社長" %}
<p>おはようございます、{{name}}!</p>
{% elsif name == "悟空" %}
<p>オッス、{{name}}!</p>
{% elsif name == "" %}
<p>おはよう、{{name}}!</p>
{% endif %}
という"test-block"というsnippetsがあったとします。
するとnameという渡す値によって出力を変更することができるのです!
{% include "test-block", name:"社長" %}
→「おはようございます、社長!」
{% include "test-block", name: "悟空" %}
→「オッス、悟空!」
と出力されるはずです。同じsnippetsなのに、異なる種類を出力できるので、非常に便利です。
[Shopify] snippetsを読み込む際にLiquidの値を渡す方法とその便利な活用方法 まとめ
以上、snippetsに値を渡す方法でした。
使い所って中々ないかなぁと思っていたのですが、例えばsnippets内に情報を格納して、色々情報を紐付けたいときとかって、複数snippetsを使用するのではなく、同じsnippets内で異なる出力を出したい時って出てくるのです。
なので、こんな方法もあるのか、と頭の片隅に入れておくと思わぬ提案ができるかも知れません。
それでは最後までお読みいただき、ありがとうございました!本日も良い1日を!

![[Shopify] 顧客タグで異なる利率の自動ディスカウント割引を適用する方法(注文割引/商品割引/送料割引対応)](http://ec-penguin.com/cdn/shop/articles/2025-02-26_11.42.12_deba0cf7-f1db-4582-b496-7ca2e1ee6666_grande.png?v=1740538061)



![[Shopify]ストアに絶対に入れたい!おすすめ『絞り込み検索機能』アプリ](http://ec-penguin.com/cdn/shop/articles/milky-way-6657951_1280_grande.jpg?v=1633862228)
![[Shopify App] PageFlyを使用してノーコードでお洒落なLPを作成する方法](http://ec-penguin.com/cdn/shop/articles/plant-5643271_1280_grande.jpg?v=1605355173)
![[Shopify]個人でECサイト商品撮影するなら必須の背景紙シート【おすすめ3選】](http://ec-penguin.com/cdn/shop/articles/2021-06-15_22.21.38_grande.png?v=1623763402)
![[Shopify]バレンタイン用のLP(ランディングページ)を無料ノーコードで制作する方法](http://ec-penguin.com/cdn/shop/articles/rose-3063283_1280_grande.jpg?v=1631631509)