制御フロータグでは、Liquidブロックを実行するかどうかを決定する様々な条件を定義します。
目次
if
if
は条件
がtrue
になるときのみ、ブロックを実行します。
{% if %}
で開始して、{% endif %}
で閉じます。
{% if <条件> %} <ブロック> {% endif %}
例
Input (product.titleの値が "すごい靴" の場合)
{% if product.title == "すごい靴" %} こりゃすごい靴だ! {% endif %}
Output
こりゃすごい靴だ!
unless
unless
はifの反対で、条件
がtrue
にならないときのみ、ブロックを実行します。
{% unless %}
で開始して、{% endunless %}
で閉じます。
{% unless <条件> %} <ブロック> {% endunless %}
例
Input (product.titleの値が "すごくない靴" の場合)
{% unless product.title == "すごい靴" %} こりゃすごい靴じゃないぞ! {% unless %}
Output
こりゃすごい靴じゃないぞ!
unless
は以下と同じ動きをします。
Input (product.titleの値が "すごくない靴" の場合)
{% if product.title != "すごい靴" %} こりゃすごい靴じゃないぞ! {% endif %}
elsif / else
ifやunlessに対して、それ以外の条件の時に実行するブロックを追加します。
if-else
{% if <条件1> %} <ブロック1> {% else <条件2> %} <ブロック2> {% endif %}
if-elsif-else
{% if <条件1> %} <ブロック1> {% elsif <条件2> %} <ブロック2> {% else <条件3> %} <ブロック3> {% endif %}
unless-else
{% unless <条件1> %} <ブロック1> {% else <条件2> %} <ブロック3> {% endif %}
- ちなみに、
unless
に対して、elsif
を付けることもできますが分かりづらいのであまり使わないかなと思います。1
例
Input
{% assign name = "anonymous" %} {% if name == "kevin" %} こんにちは、ケビン! {% elsif name == "anonymous" %} こんにちは、匿名さん! {% else %} あんたは誰だ!? {% endif %}
Output
こんにちは、匿名さん!
assign
についてはこちら。