[WordPress] WP_QueryでRepeater Fieldの値を絞込条件にする

[WordPress] WP_QueryでRepeater Fieldの値を絞込条件にする

web

カスタムフィールドもりもりのWordPress製作時、Advanced Custom Fields:Repeater Fieldの値をmeta_querykey,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_itemrepeatとしてもだめ。

これで動いた

$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_keymeta_valueでもだいじょうぶです。

$args = array(
    'meta_key' => 'repeat_0_repeat_item',
    'meta_value' => $value // 真偽値や文字列
);
$the_query = new WP_Query( $args );
目次へ戻る