这似乎应该很简单,但我坚持到底了!
如果用户搜索“alice”,我想向他们显示所有带有自定义分类术语“bob”和“carol”的帖子,无论这些帖子中是否包含字符串“alice”。
我可以设置查询的tax\\u查询,使其仅显示以“bob”和“carol”为术语的帖子,但我无法重置实际搜索查询,使其显示所有帖子,而不仅仅是包含“alice”的帖子。
这是我用来更改tax\\u查询的筛选器:
if ( !$query->is_search )
return $query;
$taxquery = array(
\'relation\' => \'OR\',
array(
\'taxonomy\' => \'people\',
\'field\' => \'slug\',
\'terms\' => array( \'bob\' ),
),
array(
\'taxonomy\' => \'people\',
\'field\' => \'slug\',
\'terms\' => array( \'carol\' ),
)
);
$query->set( \'tax_query\', $taxquery );
return $query;
但使用此设置搜索查询不起作用:$queryvars = array(
\'s\' => \'\'
);
$query->set( \'query_vars\', $queryvars );