WordPressで投稿を呼び出す際に、複数のカスタムフィールドの値を条件にして絞り込むのに詰まったので備忘録。
meta_queryの中で入れ子にしたりするとAND・OR両方使ったり複数のカスタムフィールドの値を条件にできました。
すごい適当なサンプルですが、
query_posts(array( 'post_type' => 'hoge', 'meta_query' => array( 'relation' => 'OR', array( 'key' =>'joken1', 'value' => array(100,500), 'compare' => 'between' ), array( 'key' =>'joken2', 'value' => "hogehoge", ), array( 'relation' => 'AND', array( 'key' =>'joken3', 'value' => array(50000,70000), 'compare' => 'between'
),
array( 'key' =>'joken4', 'value' => 'hage', ) ), ) ));
上のコードだと
・joken1 にヒットするもの
・joken2にヒットするもの
・joken3とjoken4の両方にヒットするもの
の全てが出力されます。
'relation' => 'OR', 'relation' => 'AND',
は初めて知りました。
最初SQLで記述しなきゃいけないのかといろいろ悩みましたが、さすがwordpress。便利ですねー。