データ型と真偽判定
Liquidの型と真偽判定のルールを理解し、条件分岐のバグを避けられる
最終確認: 2026-09
解説
受託の現場でなぜ必要か: この回では、Liquidの型(値の種類)と真偽の判定ルールを理解し、条件分岐のバグを避けられるようになります。
受託では、「説明文があるときだけ見出しを出す」という単純な分岐が、テーマ改修でいちばん多いバグの型になります。
まずはこの例を見てみましょう
{% if product.description %} {{ product.description }}{% endif %}Liquidの型は6つ
公式はstring / number(整数と小数)/ boolean / nil / array / emptyの6つに分類します。emptyは削除済み・未設定のオブジェクト(EmptyDrop)を表す特別な値で、== emptyで存在確認に使います。blankは空チェック用の比較対象で、型の一覧には含まれません。
商品などのオブジェクト(ドロップ)は別枠で、プロパティで値を取り出します。
偽になるのはnilとfalseだけ
空文字`""`も`0`も空配列も真です。
JavaScriptやPHPの感覚をそのまま持ち込むと、ここで必ず間違えます。
覚えることは、この1行だけです。
空かどうかは== blankで見る
blankは「nil・false・空文字・空白だけの文字列・空配列」に一致します。
実務では{% if x == blank %}が、最も安全な空チェックです。emptyは削除済み・未設定のオブジェクトや、空の文字列・配列に一致します。blankは、それにnilとfalseと空白だけの文字列を加えたものです。
迷ったら`blank`を使います。
存在しないプロパティは静かにnil
product.descriptonのように綴りを間違えても、エラーにならずnilになります。
条件が常に偽になるだけなので、気づきにくいです。
値が来ているか怪しいときは、jsonフィルタで中身を出して確かめます。
公式ドキュメント
※ ShopifyはShopify Inc.の商標です。本サイトは個人が制作した非公式の学習教材であり、同社の承認・提携・後援を受けていません。記載内容は2026-09時点のものです。料金・上限値・管理画面のラベルは変わるため、作業の前に公式ドキュメントで確認してください。