WordPress 教程:WordPress 的搜尋功能還是十分的強大的,不管是標題還是內容只要包含的都會在搜尋結果中展現出來。
但是我們會發現,有的時候搜尋某個關鍵詞會出現一些無用的頁面內容也出現,從使用者體驗出發,這類頁面的出現並不能給使用者解決問題,所以我們將需要在 WordPress 搜尋結果中排除頁面的出現,方法很簡單,在 WordPress 主題的根目錄下找到 functions.php 檔案,將下面程式碼插入即可,對、是插入!

- add_filter('pre_get_posts','wpjam_exclude_page_from_search');
- function wpjam_exclude_page_from_search($query) {
- if ($query->is_search) {
- $query->set('post_type', 'post');
- }
- return $query;
- }
當然,我們也可以將 post_type 設定成 page,那麼搜尋結果中將只出現頁面!!!很簡單吧!
從搜尋結果中排除特定文章或頁面
可把下面的程式碼新增到主題的 functions.php 檔案中,假設要排除 ID 為 2 和 35 的文章 (也可以是頁面,文章和頁面都有唯一的 ID)
- function fb_search_filter($query) {
- if ( !$query->is_admin && $query->is_search) {
- $query->set(『post__not_in』, array(2, 35) );
- }
- return $query;
- }
- add_filter( 『pre_get_posts』, 『fb_search_filter』 );
搜尋結果頁中排除某些分類下的文章
在主題的 functions.php 中新增如下程式碼,即可在搜尋結果中排除 ID 為 5 和 8 的分類下的所有文章
- function search_filter( $query) {
- if ( !$query->is_admin && $query->is_search) {
- $query->set(『cat』,』-5,-8′);
- return $query;
- add_filter(『pre_get_posts』,』search_filter』);