今天在搜索自己站点文章的时候,发现收录的常用网址居然也在搜索结果页面显示。
这就很尴尬了,搜索结果也太广泛了。
用户搜索到一些无关的内容,估计也很不爽,然后就尝试在搜索结果页面排除一些内容,例如:指定页面、指定文章、指定自定义分类(post_type)等内容。
嗯,折腾一阵子也算是折腾好了,现在搜索页只会显示搜索相关的文章了。
方法也挺简单,几行代码就能搞定,下面分享几段搜索结果排除内容的WordPress代码
搜索结果排除指定ID文章或页面
//搜索结果排除指定ID的文章或页面function Bing_search_filter_id($query) { if ( !$query->is_admin && $query->is_search) { $query->set(\'post__not_in\', array(40,819));//文章或者页面的ID } return $query;}add_filter(\'pre_get_posts\',\'Bing_search_filter_id\');
搜索结果排除指定分类的文章
//搜索结果排除某些分类的文章function Bing_search_filter_category( $query) { if ( !$query->is_admin && $query->is_search) { $query->set(\'cat\',\'-15,-57\'); //分类的ID,前面加负号表示排除;如果直接写ID,则表示只在该ID中搜索 } return $query;}add_filter(\'pre_get_posts\',\'Bing_search_filter_category\');
搜索结果排除所有页面
//搜索结果排除所有页面function search_filter_page($query) { if ($query->is_search) { $query->set(\'post_type\', \'post\'); } return $query;}add_filter(\'pre_get_posts\',\'search_filter_page\');
搜索结果排除自定义分类(post_type)
//搜索结果排除自定义分类(post_type)function searchAll( $query ) {if ( $query->is_search ) { $query->set( \'post_type\', array( \'site\' )); } return !$query;}add_filter( \'the_search_query\', \'searchAll\' );
文章标题:WordPress搜索结果排除指定页面/文章/自定义分类
文章链接:https://www.jitheme.com/2627.html
更新时间:2024年03月28日
1.本站大部分内容均收集于网络!若内容若侵犯到您的权益,请发送邮件至:service@jitheme.com,我们将第一时间处理!
2.资源所需价格并非资源售卖价格,是收集、整理、编辑详情以及本站运营的适当补贴,并且本站不提供任何免费技术支持。
3.所有资源仅限于参考和学习,版权归原作者所有,更多请阅读极(子)主题网络服务协议。