星空站长网上有新闻和教程两方面的东西,但是问题出来了,使用全局搜索,出来的搜索结果都是整个网站的文章。
比如:我搜索Wordpress ,搜索结果中,不光有关于Wordpress的教程,还有关于Wordpress的新闻资讯。那么需求就来了。
需求
在最终的搜索结果中,不要显示页面,和不显示指定分类下面的文章。
也就是,我不想要“新闻”类目中的文章,显示在搜索结果页中。
我们应该如何来实现这种功能。于是就去网上找了答案,分别是不让页面和指定分类中的文章显示在搜索结果页面中。那么我们就依次来解决这些问题。
排除所有页面
页面中有很多不方便透露的关键词,但通过关键词可以搜索到。即便是个新闻。
那么如何排除页面?
只需要在你使用的主题function.php(可以放子主题,如何你的主题支持的话)
简单解释下判断post选项,屏蔽掉搜索的范围外。
//搜索结果排除所有页面
function search_filter_page($query) {
if ($query->is_search) {
$query->set('post_type', 'post');
}
return $query;
}
add_filter('pre_get_posts','search_filter_page');
排除指定分类
将下面的代码放入你使用的主题function.php(可以是子主题的)
function Bing_search_filter_category( $query) {
if ( !$query->is_admin && $query->is_search) {
$query->set('cat','-15,-57'); //注意前面要加一个减号
}
return $query;
}
add_filter('pre_get_posts','Bing_search_filter_category');
分类的ID在后台可以看到。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。