我被这个困住了。也许很简单,也许不是。但事情还是发生了。
我知道在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