[WordPress] WP_QueryでRepeater Fieldの値を絞込条件にする
webカスタムフィールドもりもりのWordPress製作時、Advanced Custom Fields:Repeater Fieldの値をmeta_query
のkey
,value
として投稿を絞りたかったのだけど、あんまり情報が落ちてなかったので、時間を浪費してしまった。
誰かの役に立つかもなので、備忘録がてら書いておきます。
キーにしたいRepeaterフィールド名がrepeat
、サブフィールド名をrepeat_item
とします。
meta_queryの場合
こうだとダメだった
$args = array(
'meta_query' => array(
array(
'key' => 'repeat_item',
'value' => $value // 真偽値や文字列
),
array(
'key' => 'repeat_item',
'value' => $value // 真偽値や文字列
)
)
);
$the_query = new WP_Query( $args );
複数条件にしたかったのでmeta_query
で作っていました。
なにも考えずに書くとこうなるのだけど、これでは動かなかった。
repeat_item
をrepeat
としてもだめ。
これで動いた
$args = array(
'meta_query' => array(
array(
'key' => 'repeat_0_repeat_item',
'value' => $value // 真偽値や文字列
),
array(
'key' => 'repeat_0_repeat_item',
'value' => $value // 真偽値や文字列
)
)
);
$the_query = new WP_Query( $args );
これで動きました。
親フィールドとサブフィールドのあいだに_0_
を入れるようです。
meta_keyの場合
カスタムフィールド条件がひとつの場合はmeta_key
とmeta_value
でもだいじょうぶです。
$args = array(
'meta_key' => 'repeat_0_repeat_item',
'meta_value' => $value // 真偽値や文字列
);
$the_query = new WP_Query( $args );