变量分类的WP查询

时间:2016-03-04 作者:harman

我被这个困住了。也许很简单,也许不是。但事情还是发生了。

我知道在wordpress中查询多个分类法的标准方法是使用这里描述的方法。

https://codex.wordpress.org/Class_Reference/WP_Query#Taxonomy_Parameters

然而,这种方式只允许“硬编码”分类法。

What I\'d like to achieve is run the query for multiple variable taxonomies.

因此,假设我有一系列分类法,通过:

$taxes = get_taxonomies( array(\'public\' => true ) , \'names\', \'and\' );

试图通过$taxes 变量直接不起作用\'taxonomy\' 不接受数组。e、 g。

$args = array(
    \'post_type\' => \'post\',
    \'tax_query\' => array(
        array(
            \'taxonomy\' => $taxes,
            \'field\'    => \'term_id\',
            \'terms\'    => $terms,
        ),
    ),
);
$query = new WP_Query( $args );
因此,我试图解决这个问题,首先尝试:

foreach ($taxes as $tax) {
    $the_taxes[] = array (  
        \'taxonomy\' => $tax,
        \'field\'    => \'term_id\',
        \'terms\'    => $terms,
    );
}

$args = array(
    \'post_type\' => \'post\',
    \'tax_query\' => array(
    \'relation\' => \'OR\',
    $the_taxes                  
    ),
);
我想这没用,因为$the_taxes 变量本身是一个数组数组。我甚至尝试给它一个没有array()wrap的数组输出的精简版本,以模拟完全相同的输出,就像我遵循了wordpress的标准方式对要查询的分类进行硬编码一样。

$the_other_taxes = substr(print_r($the_taxes,true),19,-2);
$args = array(
    \'post_type\' => \'post\',
    \'tax_query\' => array(
    \'relation\' => \'OR\',
        $the_other_taxes                    
    ),
);
还是没有运气。。

是否有解决此问题的方法?我是否遗漏了一些明显的东西?

非常感谢Harry

1 个回复
最合适的回答,由SO网友:Milo 整理而成

tax_query 需要一个数组,并且$the_taxes 是一个数组,您已经得到了99%的答案。

foreach ($taxes as $tax) {
    $the_taxes[] = array (  
        \'taxonomy\' => $tax,
        \'field\'    => \'term_id\',
        \'terms\'    => $terms,
    );
}

$the_taxes[\'relation\'] = \'OR\';

$args = array(
    \'post_type\' => \'post\',
    \'tax_query\' => $the_taxes,
);

相关推荐

Custom Taxonomy in REST API

我有两个自定义分类法,用于我的帖子。我正试图从其中一个中检索名称。在REST API V2中,我执行以下操作:https://example.com/wp-json/wp/v2/posts/14340/?_embed=wp:term 这嵌入了所有分类法的实际名称(类别加上我的两个自定义分类法),但我只对与每个帖子相关联的名称感兴趣,只对其中一个自定义分类法感兴趣。响应示例:"_embedded": { "wp:term": [