WordPress 教程:WordPress 的搜索功能还是十分的强大的,不管是标题还是内容只要包含的都会在搜索结果中展现出来。

但是我们会发现,有的时候搜索某个关键词会出现一些无用的页面内容也出现,从用户体验出发,这类页面的出现并不能给用户解决问题,所以我们将需要在 WordPress 搜索结果中排除页面的出现,方法很简单,在 WordPress 主题的根目录下找到 functions.php 文件,将下面代码插入即可,对、是插入!

20131204095631

  1. add_filter('pre_get_posts','wpjam_exclude_page_from_search');
  2. function wpjam_exclude_page_from_search($query) {
  3.     if ($query->is_search) {
  4.         $query->set('post_type', 'post');
  5.     }
  6.     return $query;
  7. }

当然,我们也可以将 post_type 设置成 page,那么搜索结果中将只出现页面!!!很简单吧!

从搜索结果中排除特定文章或页面

可把下面的代码添加到主题的 functions.php 文件中,假设要排除 ID 为 2 和 35 的文章 (也可以是页面,文章和页面都有唯一的 ID)

  1. function fb_search_filter($query) {
  2. if ( !$query->is_admin && $query->is_search) {
  3.     $query->set(『post__not_in』, array(2, 35) ); 
  4. }
  5.     return $query;
  6. }
  7. add_filter( 『pre_get_posts』, 『fb_search_filter』 );

搜索结果页中排除某些分类下的文章

在主题的 functions.php 中添加如下代码,即可在搜索结果中排除 ID 为 5 和 8 的分类下的所有文章

  1. function search_filter( $query) {  
  2. if ( !$query->is_admin && $query->is_search) {  
  3.     $query->set(『cat』,』-5,-8′);   
  4.     return $query;  
  5. add_filter(『pre_get_posts』,』search_filter』);