Wordpress 自带搜索的优化
使用 Wordpress 的自带搜索功能,会遇到搜索结果中出现一些不想要的结果,需要进行优化。比如在搜索结果中排除一些分类的文章或者一些文章和页面。把下面的代码添加到主题的 functions.php 中即可。
如果需要排除特定 ID 的文章或页面,可以使用以下代码
function search_filter_id($query) {
if ( !$query->is_admin && $query->is_search) {
$query->set('post__not_in', array(11,222));//文章或者页面的 ID
}
return $query;
}
add_filter('pre_get_posts','search_filter_id');
注意:根据自己的情况修改文章或页面 ID
如果要排除一些分类的文章,可以使用以下代码
function search_filter_category( $query) {
if ( !$query->is_admin && $query->is_search) {
$query->set('cat','-11,-22'); //分类的 ID
}
return $query;
}
add_filter('pre_get_posts','search_filter_category');
注意:根据自己的情况修改分类 ID,前面有负号表示排除此分类,没有则表示只在此分类中搜索。
此外,如果你还使用了像 Simple Urls 类的插件,在搜索结果中还会出现 Simple Urls 的跳转链接,也是需要从搜索结果中排除的。针对此类情况可以使用以下代码
function search_filter_page($query) {
if ($query->is_search) {
$query->set('post_type', 'post');
}
return $query;
}
add_filter('pre_get_posts','search_filter_page');
『 转载请注明来源及链接 』