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

2018年12月6日16:32:37 发表评论 阅读289次

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

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

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

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

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

排除显示所有页面

//搜索结果排除所有页面 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');

 

MissLover
广告也精彩

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: