纯代码让WordPress搜索不显示指定文章及页面

最近在自己网站上搜索之前发布的文章发现“网站地图”的页面也会显示出来,当然其他的一些页面也会显示出来。但是,对于网站上发布的内容而言,我们往往将对访客有用的信息以文章的形式进行发布,而诸如“关于我们”、“网站地图”、“留言板”之类的功能性页面访客搜来基本上毫无用处,为了良好的访客体验,对于这一类页面我们还是选择屏蔽掉。下面是我整理的几种在搜索页面不显示特定文章及页面的方法以供参考学习。

默认把代码复制到function.php即可,知更鸟主题复制到 inc/theme-setup.php

小白请先备份好文件,以免你的误操作导致不能恢复

排除显示所有页面

//搜索结果排除所有页面 www.FuLing.org
function search_filter_page($query) {
 if ($query->is_search) {
 $query->set('post_type', 'post');
 }
 return $query;
}
add_filter('pre_get_posts','search_filter_page');

 

排除指定文章或者页面

//搜索结果排除特定 ID 的文章或页面 www.FuLing.org
function search_filter_id($query) {
 if ( !$query->is_admin && $query->is_search) {
 $query->set('post__not_in', array(11,888));//这里填写指定文章或者页面的ID
 }
 return $query;
}
add_filter('pre_get_posts','search_filter_id');

 

排除指定分类下的文章

//搜索结果排除某些分类的文章 www.FuLing.org
function search_filter_category( $query) {
 if ( !$query->is_admin && $query->is_search) {
 $query->set('cat','-16,-66'); //分类的ID,前面加负号表示排除;如果直接写ID,则表示只在该ID中搜索
 }
 return $query;
}
add_filter('pre_get_posts','search_filter_category');

 

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论