将分类术语数组传递给wp_Query

时间:2018-11-12 作者:fightstarr20

我正在尝试编译一个分类法和术语数组,以传递给wp\\U查询,我的数组如下所示。。。

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\\U查询。。。

$args = array(
    \'post_type\' => \'post\',
    \'relation\' => \'OR\',
    \'tax_query\' => $myarray,
);
$query = new WP_Query( $args );
这并没有给我任何结果,我哪里做错了?

1 个回复
SO网友:Tom J Nowell

问题是模棱两可,你不能\'relation\' => \'OR\' 在主参数列表中,因为WP_Query 知道是不是为了tax_query 而不是meta_query?

它应该如何工作,以及relation 我们需要参考的参数the official docs for 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

结束

相关推荐

Meta_Query可在本地运行,但不能在实时服务器上运行

我按作者的姓首字母筛选帖子。在我的本地服务器上,查询运行得很好,但当我推live时,它没有。它没有找到任何东西。这与我转义自定义字段值的方式有关吗?$author = get_query_var(\'author-initials\'); if (!empty($author)) { $initials = explode(\'-\', $author); $value = array(); foreach($initi