WordPress 限制搜索结果-排除或指定特定文章、页面和分类

转自:http://www.xuxiaoke.com/wpquestion/234.html,略有删改。 此处…

转自:http://www.xuxiaoke.com/wpquestion/234.html,略有删改。

此处使用了filter: pre_get_posts , 因此,也只对使用get_posts查询文章时有效。

wordpress默认都是使用get_posts查询文章的。因此,大多时候也都是有效的,不过有些主题和插件使用了WP_Query查询文章,这时候就不灵了。

排除特定 ID 的文章或者页面

1
2
3
4
5
6
7
8
//搜索结果排除特定 ID 的文章或页面
function Bing_search_filter_id($query) {
    if ( !$query->is_admin && $query->is_search) {
        $query->set('post__not_in', array(13,14));//需要排除的文章、页面 ID
    }
    return $query;
}
add_filter('pre_get_posts','Bing_search_filter_id');

//搜索结果排除特定 ID 的文章或页面
function Bing_search_filter_id($query) {
if ( !$query->is_admin && $query->is_search) {
$query->set(‘post__not_in’, array(13,14));//需要排除的文章、页面 ID
}
return $query;
}
add_filter(‘pre_get_posts’,’Bing_search_filter_id’);

排除特定分类下所有文章

1
2
3
4
5
6
7
8
//搜索结果排除特定分类下所有文章
function Bing_search_filter_category( $query) {
    if ( !$query->is_admin && $query->is_search) {
        $query->set('cat','-11,-13'); //分类的 ID,加负号表示排除;直接写ID,则表示只在该 ID 中搜索
    }
    return $query;
}
add_filter('pre_get_posts','Bing_search_filter_category');

//搜索结果排除特定分类下所有文章
function Bing_search_filter_category( $query) {
if ( !$query->is_admin && $query->is_search) {
$query->set(‘cat’,’-11,-13′); //分类的 ID,加负号表示排除;直接写ID,则表示只在该 ID 中搜索
}
return $query;
}
add_filter(‘pre_get_posts’,’Bing_search_filter_category’);

搜索结果排除所有页面

1
2
3
4
5
6
7
8
//搜索结果排除所有页面
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 search_filter_page($query) {
if ($query->is_search) {
$query->set(‘post_type’, ‘post’);
}
return $query;
}
add_filter(‘pre_get_posts’,’search_filter_page’);

类别:WordPress主题制作

本文收集自互联网,转载请注明来源。
如有侵权,请联系 wper_net@163.com 删除。

评论 (0)COMMENT

登录 账号发表你的看法,还没有账号?立即免费 注册