← inaro.devShopify学習ツール
07-04

データ型と真偽判定

Liquidの型と真偽判定のルールを理解し、条件分岐のバグを避けられる

最終確認: 2026-09

解説

受託の現場でなぜ必要か: この回では、Liquidの型(値の種類)と真偽の判定ルールを理解し、条件分岐のバグを避けられるようになります。
受託では、「説明文があるときだけ見出しを出す」という単純な分岐が、テーマ改修でいちばん多いバグの型になります。

まずはこの例を見てみましょう

Liquid
{% if product.description %}  {{ product.description }}{% endif %}
説明文が空でも、この中は実行されます。Liquidでは空文字が真だからです。見た目には「なぜか常に表示される」としか見えないので、原因にたどり着きにくいバグです。

Liquidの型は6つ

公式はstring / number(整数と小数)/ boolean / nil / array / emptyの6つに分類します。
emptyは削除済み・未設定のオブジェクト(EmptyDrop)を表す特別な値で、== emptyで存在確認に使います。
blankは空チェック用の比較対象で、型の一覧には含まれません。
商品などのオブジェクト(ドロップ)は別枠で、プロパティで値を取り出します。

偽になるのはnilfalseだけ

空文字`""`も`0`も空配列も真です。
JavaScriptやPHPの感覚をそのまま持ち込むと、ここで必ず間違えます。
覚えることは、この1行だけです。

空かどうかは== blankで見る

blankは「nil・false・空文字・空白だけの文字列・空配列」に一致します。
実務では{% if x == blank %}が、最も安全な空チェックです。
emptyは削除済み・未設定のオブジェクトや、空の文字列・配列に一致します。
blankは、それにnilとfalseと空白だけの文字列を加えたものです。
迷ったら`blank`を使います。

存在しないプロパティは静かにnil

product.descriptonのように綴りを間違えても、エラーにならずnilになります。
条件が常に偽になるだけなので、気づきにくいです。
値が来ているか怪しいときは、jsonフィルタで中身を出して確かめます。

公式ドキュメント

ステップ1 / 2

ShopifyはShopify Inc.の商標です。本サイトは個人が制作した非公式の学習教材であり、同社の承認・提携・後援を受けていません。記載内容は2026-09時点のものです。料金・上限値・管理画面のラベルは変わるため、作業の前に公式ドキュメントで確認してください。