まず結論
compare は、WP_Query の meta_query の中で、カスタムフィールドの値をどう比較するかを指定する項目です。完全一致なら =、一致しないものなら !=、数値の大小なら > や >=、部分一致なら LIKE、値の存在確認なら EXISTS などを使います。
compare は、単独で使う引数というより、meta_query の条件配列の中で使う指定です。key で見るカスタムフィールドを決め、value で比較する値を決め、compare で比較方法を決めます。
たとえば「価格が3000円以上の商品を出す」なら、key は price、value は 3000、compare は >= になります。数値として比較するなら、type も合わせて確認します。
compare は何を指定する項目か
compare は、meta_query の中で値の比較方法を指定する項目です。カスタムフィールドの値が、指定した値と一致するのか、一致しないのか、大きいのか、小さいのか、含むのか、存在するのかを決めます。
compare を省略した場合に期待どおり動くこともありますが、初心者向けのコードでは明示しておくほうが読みやすくなります。条件の意図が、コードを見た人に伝わりやすくなるからです。
ここで大事なのは、compare は「比較の種類」を指定する項目だということです。どのメタキーを見るかは key、何と比べるかは value、数値や文字列としてどう扱うかは type で考えます。
つまり、compare だけを見ても条件全体は分かりません。key、value、compare、type をセットで読む必要があります。
| compare | 意味 | 使う場面 |
|---|---|---|
= | 指定値と一致する | フラグが 1、状態が open など |
!= | 指定値と一致しない | 特定の値以外を取得したい時 |
> | 指定値より大きい | 点数が80より大きいなど |
>= | 指定値以上 | 価格が3000以上など |
< | 指定値より小さい | 点数が50未満など |
<= | 指定値以下 | 価格が10000以下など |
LIKE | 指定文字列を含む | 文字列の一部で探したい時 |
IN | 指定値のいずれかに一致する | 複数候補のどれかに当てはまる時 |
NOT IN | 指定値のどれにも一致しない | 複数候補を除外したい時 |
EXISTS | メタキーが存在する | 値の中身より存在有無を見たい時 |
NOT EXISTS | メタキーが存在しない | 未設定の投稿を探したい時 |
よく使う compare の使い分け
compare は種類が多いため、最初からすべてを覚える必要はありません。完全一致、大小比較、部分一致、存在確認の4系統から選ぶと、多くのケースを判断できます。
単純なフラグやステータスなら =、価格や点数なら >= や <=、文字列の一部を探すなら LIKE、値が入っているかだけ見たいなら EXISTS が候補になります。
LIKE は便利ですが、思ったより広く一致することがあります。保存値の一部に偶然同じ文字列が含まれている場合も一致するため、使いどころを確認します。
IN は複数候補のいずれかに一致する投稿を探す時に便利です。この場合、value は配列で指定する考え方になります。
Builder での扱い
WP Query Builder では、compare は meta_query の比較方法を選ぶ項目です。>= や LIKE だけでなく、「以上」「以下」「一致する」「含む」「存在する」という日本語ラベルも添えます。
たとえば Builder では、「メタキー: price」「比較: 以上」「値: 3000」「型: 数値」のように入力させ、内部で compare => ‘>=’、type => ‘NUMERIC’ に変換する形です。
EXISTS や NOT EXISTS を選んだ場合は value 入力を隠し、数値比較なら type も続けて選べるようにします。比較方法に合わない入力欄を残さない設計です。
使いどころ・避けどころと実践確認
meta_query の値を等価以外の方法で比べる必要があり、期待する比較規則を説明できる時に使います。
キーの存在確認だけで足りる場合や、タクソノミーのタームを比べる場合は同じ compare と考えません。
数値を文字列のまま比較すると大小関係が崩れるため、値の保存形式と type をセットで決めます。
同じ「10以上」でも文字列比較と数値比較では結果が変わるため、演算子より先に保存値の型を確認します。
境界の前後を含むメタ値を3件以上用意し、期待する投稿ID、実際の投稿ID、SQLでどの型として比較されたかを同じ記録に残します。
WordPressの仕様で確認するポイント
公式資料では、WP_Query の Custom Field Parameters と WP_Meta_Query のリファレンスで、compare に指定できる値を確認できます。key、value、type と合わせて確認すると、条件の意味を理解しやすくなります。
compare は指定値の種類が多いため、迷った時は公式資料に戻って確認します。特に、EXISTS、NOT EXISTS、IN、BETWEEN などを使う場合は、value の書き方も合わせて確認します。
公式リンク
公式ドキュメント
compare は、meta_query の中でカスタムフィールド値をどう比較するかを指定する項目です。完全一致、大小比較、部分一致、複数候補、存在確認など、目的に合わせて選びます。
迷った時は、まず1つのメタキーと1つの値だけで最小構成を作ります。取得できることを確認してから、数値比較、IN、LIKE、EXISTS、複数条件へ広げると安全です。
compare の最終チェック
compareはmeta_query内の比較方法だと理解しているkey、value、compare、typeの役割を分けて確認した- 完全一致、大小比較、部分一致、存在確認のどれが目的か決めた
- 数値比較では
type => 'NUMERIC'と保存形式を確認した EXISTSと=の違いを確認した- まずは1条件だけの最小構成で取得できるか確認した
公式リファレンス
仕様や原文の説明も確認したいときは、公式ドキュメントと整理ページをあわせて見ると理解しやすくなります。
この記事の検証情報
検証環境
- WordPress
- 7.1
- PHP
- 8.3.33
- テーマ
- wpq-media + DDEV
- 対象
- カスタム投稿 / taxonomy / meta_query
更新履歴
- 2026年8月29日 本文と補助情報を更新
- 2026年8月15日 初回公開
この用語を活用する
あとで見返す・共有する
お気に入りに保存できます。役に立ったポイントは、いいねや共有で教えてください。
他の用語も続けて確認できます
似た用語や周辺知識をまとめて見たいときは、用語集トップから探すと迷いにくくなります。