web-dev-qa-db-ja.com

Meta_queryクエリを組み合わせるにはどうすればいいですか?

私は結合したmeta_queryクエリを構築しようとしていますが、うまくいきません。以下の例のように、どのようにしてクエリを実装できるのでしょうか。

ありがとう、Hinnerk

Array
(
    [relation] => AND
    [0] => Array
        (
            [key] => price
            [value] => 1000
            [type] => numeric
            [compare] => <=
        )

    [1] => Array
        (
            [relation] => OR
            [0] => Array
                (
                    [key] => roomcount
                    [value] => 3
                    [type] => numeric
                    [compare] => >=
                )

            [1] => Array
                (
                    [key] => bathroomcount
                    [value] => 2
                    [type] => numeric
                    [compare] => >=
                )

        )

)
1

構築した配列を使用して、Iと考えますこれは正しい構文です。

$meta_query_args = array(
    'meta_key' => 'price',
    'meta_value_num' => 1000,
    'meta_compare' => '<=',
    'meta_query' => array(
        'relation' => 'OR',
        array(
            'key' => 'roomcount',
            'value' => 3,
            'type' => 'numeric',
            'compare' => '>='
        ),
        array(
            'key' => 'bathroomcount',
            'value' => 2,
            'type' => 'numeric',
            'compare' => '>='
        )
    )
);

$realestate_meta_query = new WP_Query( $meta_query_args );

meta_queryをもう1つ上のレベルにネストすることもできます(ただし、これでうまくいくかどうかはわかりません)。

$meta_query_args = array(
    'meta_query' => array(
        'relation' => 'AND',
        array(
            'key' => 'price',
            'value' => 1000,
            'type' => 'numeric',
            'compare' => '<='
        ),
        array(
            'relation' => 'OR',
            array(
                'key' => 'roomcount',
                'value' => 3,
                'type' => 'numeric',
                'compare' => '>='
            ),
            array(
                'key' => 'bathroomcount',
                'value' => 2,
                'type' => 'numeric',
                'compare' => '>='
            )
        )
    )
);

$realestate_meta_query = new WP_Query( $meta_query_args );
3
Chip Bennett