客户有一个带有用户目录的网站,他们希望将用户的作者页面从网站搜索中排除,这样,如果用户搜索“smith”,他们就不会得到带有“smith”的页面以及指向John smith用户档案的链接。
我已将以下代码添加到函数文件中,据说该文件将搜索结果仅限于帖子和页面:
add_filter(\'pre_get_posts\', \'SearchFilter\');
function SearchFilter($query){
if($query->is_search){
$query->set(\'post_type\', array(\'post\', \'page\'));
}
return $query;
}
不过,用户配置文件仍会显示在搜索结果中。我还回显了全局$wp\\u查询,看到正在设置帖子类型,但仍会显示用户类型为post\\u(不是实际的帖子类型)的作者页面。
您可以在此图像中看到,post\\u type设置为posts和page:
但在这里,您可以看到post\\u类型的用户仍被拉入搜索结果:
我应该如何将用户排除在搜索之外?
更新:我使用下面的代码输出了所有注册的帖子类型,以确保“user”不在列表中。
add_action(\'init\', \'update_my_custom_type\', 99);
function update_my_custom_type(){
global $wp_post_types;
print_r($wp_post_types);
}