有时候我们不想让某些文章或页面(Posts or Pages)出现在WordPress的搜索结果中,本文介绍如何通过WordPress的filter将某些页面或文章从搜索结果中排除,要使用他们的ID实现。
从搜索结果中排除特定文章或页面
在主题的functions.php中添加代码,假设要排除ID为40和9的文章(也可以是页面,文章和页面都有唯一的ID)
// search filter function fb_search_filter( $query ) { if ( ! $query ->is_admin && $query ->is_search) { $query ->set( 'post__not_in' , array (40, 9) ); // 文章或者页面的ID } return $query ; } add_filter( 'pre_get_posts' , 'fb_search_filter' ); |
这样就可以排除特定的文章或页面。
从搜索结果中排除所有页面
在主题的functions.php中添加如下代码,即可在搜索结果中排除所有页面
add_filter( 'pre_get_posts' , 'search_filter' ); function search_filter( $query ) { if ( $query ->is_search) { $query ->set( 'post_type' , 'post' ); } return $query ; } |
从搜索结果中排除某些分类下的文章
在主题的functions.php中添加如下代码,即可在搜索结果中排除ID为1和2的分类下的所有文章
function search_filter( $query ) { if ( ! $query ->is_admin && $query ->is_search) { $query ->set( 'cat' , '-15,-57' ); // 分类的ID,前面加负号表示排除 } return $query ; } add_filter( 'pre_get_posts' , 'search_filter' ); |
评论前必须登录!
注册