WordPress搜索结果排除指定页面/文章/自定义分类
这就很尴尬了,搜索结果也太广泛了。
用户搜索到一些无关的内容,估计也很不爽,然后就尝试在搜索结果页面排除一些内容,例如:指定页面、指定文章、指定自定义分类(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\\\\\\\' );
本站声明:
1. 本站所有资源来源于网络,分享目的仅供大家学习和交流! 2. 不得使用于非法商业用途,不得违反国家法律。否则后果自负! 3. 本站提供的资源,都不包含技术服务请大家谅解! 4. 如有链接无法下载、失效或广告,请联系站长处理!
1. 本站所有资源来源于网络,分享目的仅供大家学习和交流! 2. 不得使用于非法商业用途,不得违反国家法律。否则后果自负! 3. 本站提供的资源,都不包含技术服务请大家谅解! 4. 如有链接无法下载、失效或广告,请联系站长处理!
再次声明:如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
本站所有资源解压密码均为www.huziy.com或者www.92luntan.com