我正在使用此代码确保搜索结果仅显示一个类别的结果。它的效果非常好,但副作用是在所有帖子页面的后端,搜索也只提供同一类别的结果。我怎样才能确保它在前端而不是后端工作?
//EXCLUDE CATEGORIES FROM SEARCH RESULTS
function SearchFilter($query) {
if ($query->is_search) {
$query->set('cat','1');
}
return $query;
}
add_filter('pre_get_posts','SearchFilter');
答案 0 :(得分:9)
嗯,这是一个常见问题,解决方案很简单:
为避免这种情况,我们的add_filter
只能在前端执行。一种简单的方法是使用函数is_admin
作为布尔函数。所以:
function SearchFilter($query) {
if ($query->is_search) {
$query->set('cat','1');
}
return $query;
}
if(!is_admin())
add_filter('pre_get_posts','SearchFilter');
是吗?