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』);