1

WordPress の税クエリを使用すると、次のようになります。

税金クエリ

$args = array(
        'post_type' => 'post',
        'post__not_in' => array($post->ID),
        'tax_query' => array(
            'relation' => 'OR',
            array(
                'taxonomy' => 'color',
                'terms' => $color_array,
                'field' => 'slug',
            ),
            array(
                'taxonomy' => 'brand',
                'terms' => $brand_array,
                'field' => 'slug',
            )
        )
    );

次に、この配列を取得する foreach ループを使用してタクソノミーを動的に追加しようとします。

分類関係引数配列

array (size=2)
  0 => 
    array (size=3)
      'taxonomy' => string 'color' (length=5)
      'terms' => 
        array (size=1)
          0 => string 'pink' (length=4)
      'field' => string 'slug' (length=4)
  1 => 
    array (size=3)
      'taxonomy' => string 'brand' (length=11)
      'terms' => 
        array (size=2)
          0 => string 'star' (length=15)
          1 => string 'testar' (length=6)
      'field' => string 'slug' (length=4)

配列を作成する foreach ループ

簡略化。

$tax_relations = array();
    foreach( $taxes as $tax ) {
        $tax_relations[] = array(
            'taxonomy' => $tax,
            'terms' => $tax_array,
            'field' => 'slug',
        );
    }

配列を税クエリ引数に追加すると機能しません:

マージの失敗

これが私がすることです。$tax_relations という配列を追加します。

$args = array(
    'post_type' => 'post',
    'post__not_in' => array($post->ID),
    'tax_query' => array(
        'relation' => 'OR', $tax_relations
    )
);

ここまでわかったこと

鍵のせいです。単なる配列の代わりに 0 => 配列を追加します。これはどのように解決されますか?

4

2 に答える 2

3

これは次のように行うことができます。

$args = array(
    'post_type' => 'post',
    'post__not_in' => array($post->ID),
    'tax_query' => array_merge(array('relation' => 'OR'), $tax_relations)
);
于 2013-06-20T14:31:50.130 に答える
0

これを試して:

$args = array(
    'post_type' => 'post',
    'post__not_in' => array($post->ID),
    'tax_query' => array(
        'relation' => 'OR',
    ) + $tax_relations
);
于 2013-06-20T14:34:06.733 に答える