我不确定这是否是正确的方法(因为我没有通过为“tax\\u query”提供“relation”参数来获得想要的结果),但我的工作中有一个场景,即网站使用名为“topics”的分类法作为主菜单,因此需要与其他分类法分开处理,它们被用作较低级别的筛选选项(即“学校”)以及“post\\u类型”的筛选。以下是我的解决方案,以mrwweb为例。
需要注意的是,如果“schools”的查询变量为空,则整个查询不会得到任何结果,而它应该会生成所有结果,因为“schools”不再被过滤。所以,我只是将查询数组的这一部分转换为一个条件数组,它按预期工作。
function uci_get_taxonomies() {
$params = array();
$topic = get_queried_object();
$params[TAXONOMY_TOPICS] = $topic->slug;
$contentTypes = get_query_var(\'post_type\');
$params[\'post_type\'] = $contentTypes;
$schools = get_query_var(TAXONOMY_SCHOOLS);
if(!empty($schools)) {
$params[\'tax_query\'][] = array(\'taxonomy\' => TAXONOMY_SCHOOLS, \'field\' => \'slug\', \'terms\' => $schools);
}
$query = new WP_Query($params);
//Util::debug($query->query_vars);
return $query;
}