{% 〇〇 %}内での変数展開について

AI-generated summary

ブログのタグページで、現在のブログタグと同名のタグを持つ商品だけを動的に表示したい、というLiquidの記述方法が主題です。collections['all'].products を走査し、商品タグと現在のブログタグを比較する実装が試されていました。

要点:

  • {{ current_tags }} は画面出力用で、{% if %} などのLiquidタグ内では current_tags とそのまま変数名で書く。
  • 比較は tag == current_tags でよい。
  • {{ }} は値の表示、{% %} は制御構文という使い分けが確認された。

結果:

  • {% if tag == current_tags %} で解決。
  • 当初うまくいかなかった原因は、商品タグ名とブログタグ名のテスト登録時に半角スペースの有無が一致していなかったため。
  • 議論は解決済みで、追加の未解決事項は特に残っていません。

■実現したい事

ブログタグページで、ブログタグ名と商品タグ名が一致する商品を表示したいです。

例)

・商品A 登録タグ:りんご

・ブログA 登録タグ:りんご

https://〇.myshopify.com/blogs/blog/tagged/りんご

のブログタグページ内で、同一タグを持っている「商品A」を表示。

■試したこと

{% for product in collections['all'].products %}
  {% for tag in product.tags %}
    {% if tag == 'りんご' %}
	<a href="{{ product.url }}">{{ product.title }}</a>      
    {% endif %}
  {% endfor %}
{% endfor %}

⇒このコードで同一タグを持つ商品の出力はできましたが、ブログタグページ毎に動的に動作させるために{% if tag == ‘りんご’ %}のりんごの部分の値を変数で対応させたいです。

{{current_tags}}で現在表示のブログタグページのタグは取得できますが、以下のように{% 〇〇 %}内で変数展開ができません。

{% if tag == current_tags %}
{% if tag == ’{{current_tags}}’ %}

{% 〇〇 %}内での変数展開の方法などがございましたら、ご教示いただけますでしょうか。

{% if tag == current_tags %}

ではどうでしょうか? {{}}は、テンプレート内で展開させる方法で、Liquid内でコードの変数として利用する場合は、名称を直接指定することになると思います。

{% if tag == current_tags %}

で問題なく解決いたしました。有り難うございます。

凡ミスで商品タグとブログタグの登録タグ名を半角スペース有り無しで登録してテストしていました・・・。