meta_query.keycustom field名price / event_date / featured などBuilderではkeyを入れると他のcontrolが有効になります。入力値のsanitizeも実装側で行います。
PARAMETER REFERENCE
key、value、compare、typeを揃え、保存形式に合う比較を選びます。
迷っている条件に近い項目から確認し、必要な値と注意点へ進んでください。
パラメーター名だけでなく、何を決める値か、どの選択肢が使えるかを同時に確認します。
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のcastBINARYWordPress 5.3以降の特殊用途です。必要性を説明できない場合は未設定にします。
meta_query.relation複数clauseの関係AND / ORclauseを増やした時だけ指定します。複雑なnested構造ではなく、Builderは読みやすいflat clauseを扱います。
実装で起きやすい衝突を、条件を増やす前に確認します。
1, 3, 34, 4のような文字列順になるため、数値の範囲・並び順はNUMERIC系に合わせます。
DATEとBETWEENはYYYY-MM-DD形式で保存・比較する前提です。timestampや独自形式へそのまま当てません。
EXISTS/NOT EXISTSはkeyの存在判定です。Builderは不要なvalueをerrorにし、意図を一つに保ちます。
そのまま貼るのではなく、対象post typeとtemplateの使い方に合わせて調整してください。
$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で実際のクエリに落とし込んでみてください。
このページを活用する
あとで見返す・共有する
お気に入りに保存できます。役に立ったポイントは、いいねや共有で教えてください。