以下代码可以防止我们的“项目”出现在网站搜索结果中,但它会对管理后端的各种过滤造成意想不到的后果。有什么办法可以让功能只包含在前端搜索吗?
function ss_search_filter( $query ) {
if ( $query->is_admin() ) :
return $query;
endif;
if ( $query->is_search() && $query->is_main_query() ) {
// set the post type to only post types you want returned.
$query->set( 'post_type', ['page', 'post', 'product'] );
}
return $query;
}
add_action( 'pre_get_posts', 'ss_search_filter' );
$query->is_admin()
可能不正确。尝试将其更改为is_admin()
。
补充说明:
pre_get_posts
是一个动作,而不是一个过滤器,所以返回变量是不正确的。