本文へ移動

PARAMETER REFERENCE

カスタムフィールド・Meta Query

key、value、compare、typeを揃え、保存形式に合う比較を選びます。

このページで確認できること

迷っている条件に近い項目から確認し、必要な値と注意点へ進んでください。

  • 価格や優先度を数値として比較したい
  • 特定keyの有無だけを確認したい
  • 複数のcustom field条件をAND/ORで組みたい

値・選択肢・前提

パラメーター名だけでなく、何を決める値か、どの選択肢が使えるかを同時に確認します。

パラメーター役割主な選択肢・注意
meta_query.keycustom field名

price / event_date / featured などBuilderではkeyを入れると他のcontrolが有効になります。入力値のsanitizeも実装側で行います。

meta_query.value比較する値

単一値、IN系やBETWEEN系では配列BETWEEN/NOT BETWEENは値を二つにします。EXISTS/NOT EXISTSではvalueは不要です。

meta_query.compare値の比較方法

= / != / > / >= / < / <= / LIKE / NOT LIKE / IN / NOT IN / BETWEEN / NOT BETWEEN / EXISTS / NOT EXISTS部分一致、範囲、存在確認を目的に合わせます。LIKEへwildcardを自分で重ねる前に生成SQLの挙動を確認します。

meta_query.type値を比較する型

CHAR / NUMERIC / BINARY / DATE / DATETIME / DECIMAL / SIGNED / TIME / UNSIGNED数値はNUMERIC系、DATEはYYYY-MM-DD保存など、実際の保存形式に合わせます。型を変えても壊れた保存値は直りません。

meta_query.compare_keymeta key自体の比較

= / != / LIKE / NOT LIKE / IN / NOT IN / REGEXP / NOT REGEXP / RLIKE / EXISTS / NOT EXISTSWordPress 5.1以降。通常のkey完全一致では未設定で十分です。

meta_query.type_keymeta keyのcast

BINARYWordPress 5.3以降の特殊用途です。必要性を説明できない場合は未設定にします。

meta_query.relation複数clauseの関係

AND / ORclauseを増やした時だけ指定します。複雑なnested構造ではなく、Builderは読みやすいflat clauseを扱います。

組み合わせる前に確認すること

実装で起きやすい衝突を、条件を増やす前に確認します。

数字をCHARのまま比べない

1, 3, 34, 4のような文字列順になるため、数値の範囲・並び順はNUMERIC系に合わせます。

日付は保存形式まで確認する

DATEとBETWEENはYYYY-MM-DD形式で保存・比較する前提です。timestampや独自形式へそのまま当てません。

有無だけならvalueを書かない

EXISTS/NOT EXISTSはkeyの存在判定です。Builderは不要なvalueをerrorにし、意図を一つに保ちます。

最小構成の実装例

そのまま貼るのではなく、対象post typeとtemplateの使い方に合わせて調整してください。

PHPMeta Query
$args = [    'post_type'  => 'product',    'meta_query' => [        [            'key'     => 'price',            'value'   => [ 3000, 8000 ],            'compare' => 'BETWEEN',            'type'    => 'NUMERIC',        ],    ],];

仕様の最終確認対象WordPress versionのcode referenceも確認してください。WordPress Developer Resources

ほかの分類を見る

条件を組み合わせるときは、隣り合う分類の値や前提もあわせて確認すると設定漏れを防げます。

次に確認すること

「Meta Query」の値と注意点を確認できたら、ほかの分類との関係を見直し、実装例かBuilderで実際のクエリに落とし込んでみてください。

このページを活用する

あとで見返す・共有する

お気に入りに保存できます。役に立ったポイントは、いいねや共有で教えてください。

任意のご支援 役に立ったときだけ、活動を応援できます OFUSEはサイト・記事制作に使います。支援の有無で、読める内容や使える機能は変わりません。