[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 );