web-dev-qa-db-ja.com

分類用語の配列をwp_queryに渡します

私はwp_queryに渡す分類法と用語の配列をコンパイルしようとしています、私の配列は次のようになります...

Array
(
    [0] => Array
        (
            [taxonomy] => color
            [field] => term_id
            [terms] => Array
                (
                    [0] => 15
                )

        )

    [1] => Array
        (
            [taxonomy] => shape
            [field] => term_id
            [terms] => Array
                (
                    [0] => 87
                )

        )

    [2] => Array
        (
            [taxonomy] => weight
            [field] => term_id
            [terms] => Array
                (
                    [0] => 3
                    [1] => 54
                )

        )

    [3] => Array
        (
            [taxonomy] => rating
            [field] => term_id
            [terms] => Array
                (
                    [0] => 87
                    [1] => 88
                )

        )

)

このようにwp_queryに渡そうとしています...

$args = array(
    'post_type' => 'post',
    'relation' => 'OR',
    'tax_query' => $myarray,
);
$query = new WP_Query( $args );

これは私に結果を与えていません、どこで間違っていますか?

1
fightstarr20

問題はあいまいさです。メインパラメータリストに'relation' => 'OR'を入れるだけでは、WP_Queryではなくtax_queryであるかどうかをmeta_queryで知るにはどうすればよいですか。

どのように機能するか、およびrelationパラメータがどこにあるかについては、 この例を示すWP_Query の公式ドキュメントを参照する必要があります。

$args = array(
    'post_type' => 'post',
    'tax_query' => array(
        'relation' => 'OR',
        array(
            'taxonomy' => 'category',
            'field'    => 'slug',
            'terms'    => array( 'quotes' ),
        ),
        array(
            'taxonomy' => 'post_format',
            'field'    => 'slug',
            'terms'    => array( 'post-format-quote' ),
        ),
    ),
);
$query = new WP_Query( $args );

設定は次のように簡単です。

$myarray['relation'] = 'OR'; // untested
3
Tom J Nowell