改進 WordPress 網站的搜索功能

已發表: 2018-04-12

一旦您開始撰寫博客內容並積累了不止幾篇文章,您將有望吸引更多訪問者訪問您的網站。 當他們到達那裡時,您的訪問者只會想要最好的內容,而且只有當他們對該主題感興趣時才會如此。 所以,即使你縮小了領域,只寫 PC 遊戲而不是所有的視頻遊戲,人們仍然不會對你到目前為止寫的每一篇文章都感興趣。

除了您或其他訪問者提供的鏈接和推薦之外,您還希望讓您的用戶能夠搜索您的網站。

與人們在 Google 上搜索以訪問您的網站的方式相同,您希望他們也能夠搜索您的博客。 是的,WordPress 中已經集成了一個默認搜索功能。 但是,如果您嘗試過使用它,您可能已經註意到它並不像您想像的那麼好,即使它多年來有所改進。

因此,為了使搜索功能更加出色,您可以做一些我將在本文中向您展示的操作。

WordPress 的最佳搜索插件

有了各種各樣的 WordPress 插件,您不必擔心修改搜索功能。 有許多很棒的插件可以擴展您的搜索可能性,您將自豪地在您擁有的網站上展示您的搜索框。

如果你做的一切正確,用戶很可能會在你的新搜索框中輸入他們想要的內容並獲得他們預​​期的結果。 現在讓我們看看您可以在幾分鐘內安裝的一些最好的 WordPress 搜索插件。

WP 谷歌搜索

價格:免費

WP 谷歌搜索

讓我們從一個插件開始,它可以幫助您在您的網站上獲得 Google 搜索引擎的強大功能。 這個免費插件將幫助您設置一個 Google 搜索框,您可以將其作為小部件輕鬆放置在您的網站上。

您必須註冊一個 Google 自定義搜索帳戶,獲取 ID,然後插件會完成剩下的工作。 然後,您的訪問者將能夠搜索您的網站或整個網絡,具體取決於您的設置,或者如果您決定這樣做,甚至只搜索圖像。 您可以自定義許多搜索功能、應用自定義佈局、更改顏色、字體、縮略圖等等。

  • 結果由 Google 提供支持
  • 直接鏈接到 Google Analytics
  • 自動完成

快速搜索

價格:免費

快速搜索

這個現代插件已經被許多流行的網站使用,認可它的力量。 Swiftype 不僅具有最好的搜索算法之一,可以為您提供有意義的結果,而且還可以讓您詳細了解在您的網站上進行的所有搜索。 使用此功能,您可以輕鬆找到適合您網站的最佳關鍵字,並使內容和搜索結果更加出色。

該插件將取代標準的 WordPress 搜索,一旦您創建了一個免費帳戶,您就可以自定義 Swiftype,使其盡可能適合您的網站。 如果您有一個顯示博客內容的移動應用程序,您可以使用移動 SDK 幫助您的移動訪問者更輕鬆地搜索內容。

  • 拖放界面
  • 自動完成
  • 詳細分析

搜索WP

價格: 49 美元起

搜索WP

SearchWP 是另一個流行的 WordPress 插件,它將成為默認 WP 搜索的絕佳替代品。 安裝後,您不必處理困難的設置,相反,您可以將其配置為使用自定義字段和帖子類型、不同的分類法等。

該插件適用於不同的媒體類型,因此可以輕鬆找到視頻、PDF 文檔、音頻等。 它的算法會考慮您文章中關鍵字的相關性,因此,例如,在標題中找到的詞對搜索結果的影響比在文章、評論或側邊欄中找到的詞影響更大。 開發人員會喜歡擴展插件功能的可能性,同時您還可以安裝不同的擴展。

您可以獲得搜索結果的詳細統計信息,以便您可以處理人們正在搜索的內容。 目前,您可以選擇三種不同的許可證,每年 49 美元起。

  • 關鍵字權重控制
  • 搜索視頻、音頻和 PDF 等媒體
  • 詳細分析

相關性

價格:免費或溢價 49.95 美元起

相關性

Relevanssi 聽起來可能很相關。 實際上,確實如此,因為 Relevanssi 是芬蘭語中的相關詞。 此插件將替換您默認的 WordPress 搜索引擎,並使其變得更好。 為了繼續關於插件名稱的故事,Relevanssi 將根據其相關性而不是日期對您的結果進行排序。 這只是長列表中的第一個功能。 這個強大的插件可以匹配部分單詞(模糊匹配),它可以讓你搜索短語或讓你只搜索一個詞。

創建自定義摘錄,突出顯示文檔中的結果,並使用這個很棒的插件做很多很多事情。 Relevanssi 可以搜索評論、標籤和自定義帖子類型。 它還將使您能夠選擇標題、標籤和評論的權重,從而改進搜索。

我們要強調的眾多功能之一是建議功能,該功能將為用戶提供類似的搜索查詢——類似於谷歌著名的“你的意思是?” 建議。 Relevanssi 提供了更多功能,這只是我們所討論的免費版本。 如果您需要更多,尤其是在運行多站點時,您應該查看高級版本。

  • 模糊匹配
  • 文檔中突出顯示的搜索詞
  • 基於建議的搜索結果

搜索智商

價格:每月 159 美元起免費或溢價

搜索智商

SearchIQ 是另一個出色的 WordPress 搜索插件,可為用戶提供增強的搜索體驗。 憑藉強大的搜索邏輯、高級語義分析、錯誤處理和許多此類功能,SearchIQ 將用戶引導至他們正在尋找的結果。 SearchIQ 非常易於安裝和定制。

入門需要在 SearchIQ 上創建一個帳戶,安裝並激活插件,從 SearchIQ 儀表板複製 API 密鑰,然後在 WP 後端輸入 API 密鑰。 免費版本提供基本功能,對於需要 PDF、CDN、Facet 或自定義品牌等高級功能的企業,可以訂閱付費包。

您不僅可以跨頁面、帖子、WordPress 默認系統字段、用戶定義的自定義字段、產品屬性和分類法、PDF 和摘錄進行搜索。 但 SearchIQ 的儀表板還包括實時分析數據,可幫助您了解用戶的搜索行為,從而更好地優化您的內容策略。

搜索一切

價格:免費

搜索一切

默認 WP 搜索的另一個很好的免費替代品絕對是 Search Everything 插件。 它將在不修改模板的情況下改善您的搜索結果。 您可以將其設置為搜索 WordPress 中的幾乎所有內容,包括頁面、摘錄、草稿、附件、評論、標籤甚至自定義字段。 除此之外,您可以隨意省略頁面並發布您不想在搜索結果中找到的頁面。

這個插件帶有一個名為 Research Everything 的小助手,它會在您撰寫新文章時搜索您的內容,並讓您能夠立即鏈接到其他內容。 如果您想進行更多研究,Power Search 功能將幫助您在 Internet 上查找內容。 如果您正在運行,只需安裝並激活插件,甚至無需查看設置頁面,您就會在幾分鐘內啟動並運行改進的搜索引擎。

  • 排除您不想被搜索的內容
  • 包括研究一切和 Power Search
  • 不修改您的模板頁面

更改 WordPress 中的默認搜索 URL slug

除非您的網站是僅包含您公司名稱和聯繫信息的單頁網站,否則如果您詢問我們,搜索功能是必備功能。 無論您是剛開始 WordPress 博客還是網站上已經有數千篇文章和頁面,無論您是作為業餘愛好寫作還是通過博客賺錢,您都必須盡一切努力讓訪問者留在網站上. 為他們提供一種簡單快捷的方式來搜索您的網站絕對是您應該注意的重要事項之一。

無論您是使用 WordPress 的內置搜索引擎還是安裝了不同的搜索引擎,都需要注意搜索結果。

雖然您可以對搜索功能做很多事情,但您可能忘記了一件簡單而重要的事情。 是的,我們討論的是在搜索返回結果頁面後出現在地址欄中的 URL slug。

默認情況下,WordPress 使用非用戶友好版本的 slug。 不僅您的訪問者會發現那個 slug 很奇怪,而且它也可能會損害您的 SEO。 更好的說法是,您可以通過將 slug 更改為人類和機器都可以理解的內容來幫助您的 SEO。

如果您嘗試過搜索您的網站,您可能會看到地址欄中出現的奇怪的 /?s=term slug。 在這一部分,我們將向您展示如何將其更改為您想要的任何內容。 例如,我們將把“/?s=term”改為“/search/term” ,這樣更容易記住和使用。

  1. 打開functions.php
  2. 複製並粘貼以下內容:
 函數 feed_dir_rewrite( $wp_rewrite ) {
$feed_rules = array( 'search/(.+)' => 'index.php?s=' 
. $wp_rewrite->preg_index(1));
$wp_rewrite->rules = $feed_rules + $wp_rewrite->rules;
}
add_filter('generate_rewrite_rules', 
'feed_dir_rewrite' );
  1. 將第三行的目標 URL 更改為您喜歡的任何內容
  2. 保存更改

在對functions.php 文件進行這些更改後,您可以嘗試新的URL slug。 別擔心; 如果插件或用戶試圖通過導航到舊 URL slug 來訪問您的搜索結果,您的網站不會返回錯誤,而只是將搜索結果重定向到新 URL。

如果您想將 slug 更改為獨特的東西,您可以在代碼的第三行執行此操作。

這會將您的搜索結果頁面帶到 – www.yourdomain.com/search/search-term

現在您可以放鬆並停止思考搜索結果如何顯示給您的用戶以及搜索引擎機器人,他們現在可以更輕鬆地抓取這些結果。 另外,看到整個“搜索”詞而不是那個奇怪的問號後跟字母“s”不是更自然嗎? 告訴我們你的想法。

僅按標題搜索帖子

如果您仍在使用默認的 WordPress 搜索引擎,您遲早會想要修改它的工作方式。 雖然它搜索您的帖子的方式沒有任何問題,但您可能希望將搜索限制為標題。

這個小功能不會瀏覽所有內容,而是只搜索帖子標題。 在某些情況下,這可能真的有助於您獲得更清晰、更快的搜索結果:

  1. 打開functions.php
  2. 複製並粘貼此代碼:
 函數 __search_by_title_only( $search, &$wp_query )
{
全球 $wpdb;
如果(空($搜索)){
返回 $search; // 跳過處理 - 沒有搜索詞 
在查詢}
$q = $wp_query->query_vars;
$n = !empty($q['exact']) ? '' : '%';
$搜索 =
$searchand = '';
foreach ((array)$q['search_terms'] as $term) {
$term = esc_sql($wpdb->e​​sc_like($term));
$search .= "{$searchand}($wpdb->posts.post_title LIKE 
'{$n}{$term}{$n}')";
$searchand = ' AND ';
}
如果(!空($搜索)){
$search = " AND ({$search}) ";
如果 (!is_user_logged_in())
$search .= " AND ($wpdb->posts.post_password = '') ";
}
返回 $search;
}
add_filter('posts_search', '__search_by_title_only'
, 500, 2);
  1. 保存更改

更改後,您可以打開您的網站並開始新的搜索。 為確保一切正常,您應該嘗試搜索您知道的某個帖子標題中的單詞,該詞應在結果頁面中返回該帖子。 如果您嘗試搜索未包含在您已發布的任何標題中的單詞或完整術語,搜索結果將是空的。

這實際上就是全部。 如果您決定要恢復舊搜索,只需刪除或註釋掉該功能即可。

改進搜索功能並在類別內查找結果

WordPress 中的默認搜索功能隨著每次更新而變得越來越好。 您可以輕鬆地在博客中包含搜索功能,讓人們輕鬆找到他們想要的內容。 但是,如果您沒有對該函數進行任何更改,搜索結果將顯示與查詢相關的所有內容。 如果你有很多內容,這可能是一個問題,因為人們會在結果頁面上有大量文本,這對他們沒有多大幫助。

改進搜索功能WordPress

在本文的這一部分中,我們將向您展示如何允許訪問者僅在您可以在代碼中定義的特定類別內進行搜索,或者允許訪問者從下拉列表中選擇類別。

提前選擇類別:

首先,我們將向您展示創建新搜索框的代碼。 使用此代碼,您不會讓人們為他們的搜索選擇類別,但您將在代碼中定義類別。 這可能會幫助您處理需要單獨搜索框的特殊類別。

例如,您可能有一個僅包含智能手機評論的類別。 使用此代碼,您可以允許人們僅通過該類別進行搜索,這樣搜索結果就不會加載有關家用電器或網站上其他內容的信息。 有道理吧?

  1. 打開您希望顯示搜索框的頁面或從中創建一個新的小部件
  2. 複製並粘貼以下代碼:
 <form method="get" action="/">
<div>
<input type="text" value="" name="s" />
<input type="hidden" value="1" name="cat" />
<input type="submit" name="搜索"
值="搜索"/>
</div>
</form>
  1. 將第三個輸入類型的值更改為要搜索的類別 ID
  2. 保存更改

進行這些更改後,將出現一個新的搜索框,它允許您搜索您在上面的代碼中輸入的 ID 的類別。 如果您想搜索多個類別,只需通過輸入以逗號分隔的數字來添加更多 ID。

 <input type="hidden" value="1, 2" name="cat"/>

雖然在某些情況下這可能是一個很好的解決方案,但有時您會希望顯示類別列表並允許訪問者選擇搜索位置。

讓訪問者選擇要搜索的類別:

遵循相同的示例,其中您有智能手機、台式電腦、筆記本電腦、家用電器等類別。例如,為什麼不允許訪問者選擇其中之一併僅通過“筆記本電腦”類別進行搜索?

在以下幾行中,我們將向您展示如何做到這一點:

  1. 打開 sidebar.php 或您希望搜索框出現的任何位置
  2. 複製並粘貼代碼:
 <form method="get" action="<?php bloginfo('url'); ?>">
<字段集>
<input placeholder="搜索類別" type="text" 
name="s" value="" maxlength="40" required="required" />
<選擇名稱="category_name">
<option value="smartphones">智能手機</option>
<option value="desktop-computers">台式計算機
</選項>
<option value="laptops">筆記本電腦</option>
<option value="home-app">家用電器</option>
</選擇>
<button type="submit">搜索所選類別</button>
</fieldset>
</form>
  1. 更改選項值下的類別。 在值和標籤之間的名稱中寫入類別 slug
  2. 保存更改

自動顯示列表中的所有類別:

如果您想顯示所有類別,並且您不想擔心在管理面板中添加/刪除它們後在此代碼中添加或刪除它們,請在 <select></select> 標記之間使用此代碼:

 <?php
$categories = get_categories();
foreach ($categories 作為 $category) {
echo '<option value="', $category->slug, '">', 
$category->name, "</option>n";
}
?>

此代碼將生成所有可用類別的列表。

就是這樣。 現在,您可以輕鬆添加訪問者可以輕鬆搜索的一個或多個類別。 無論您是希望人們自己選擇類別還是希望在代碼中指定類別,您都可以使用。

為 WordPress 搜索結果定義類別

默認情況下,WordPress 會搜索您網站上的所有內容。 如果用戶在搜索框中輸入一個詞或整個詞組,他將獲得整個網站的結果,包括帖子、頁面、類別和標籤、標題和內容等。 如果您還沒有安裝任何其他搜索系統,或者已經進行了更改,您可能需要修改默認搜索框。

在 WordPress 中搜索類別

如果您想修改 WordPress 中已經存在的搜索框並定義將包含在結果頁面中的類別,您可能會採取一些不同的方法。

在這一部分,我們將向您展示如何做到這一點。 您可以輕鬆地從代碼中添加或刪除類別,並決定您(不)希望在搜索結果中使用哪個類別。

在搜索結果中添加或刪除類別:

  1. 打開functions.php
  2. 複製並粘貼代碼。
 功能搜索類別($查詢){
如果($query->is_search){
$query->set('cat','1,4,6');
}
返回 $query;
}
add_filter('pre_get_posts','searchcategory');

  1. 添加分類'ID上的第三
  2. 保存更改

現在您已經進行了更改,搜索結果將僅從指定類別中獲取信息,而其他類別將被排除在外。 如您所見,您可以輕鬆地在列表中添加類別; 如果您願意,您可以只擁有一個類別,或者您可以設置任意數量的訪問者能夠搜索到的數量。 只需編寫以逗號分隔的類別 ID。

如果您的唯一目標是從搜索結果中排除一兩個類別,您可以更快地完成; 您可以通過在類別 ID 前輸入減號 (-) 來排除一個,而不是輸入要包括的所有類別。 例如,如果要排除 ID=1 的類別,則第三行代碼將如下所示:

 $query->set('cat','-1');

你去吧。 現在,您可以更有效地管理搜索結果。

從 WordPress 搜索中排除頁面或帖子

在大多數情況下,您希望訪問者能夠搜索您的帖子,而來自頁面的結果可能只會分散典型的“搜索者”的注意力。 如果您的頁麵包含聯繫信息、地圖、作者信息等,您可能不需要將這些頁麵包含在搜索結果中。

如何從 WordPress 搜索中排除頁面

雖然沒有簡單的方法可以告訴 WordPress 從搜索結果中排除帖子類型,但您需要自己這樣做:

  1. 打開functions.php
  2. 將以下代碼複製並粘貼到文件中:
 功能搜索過濾器($查詢){
如果($query->is_search){
$query->set('post_type', 'page');
}
返回 $query;
}

add_filter('pre_get_posts','SearchFilter');
  1. 保存更改

完成更改並保存後,您可以自由訪問您的網站並測試搜索引擎。 如果一切正常,您應該無法在搜索結果中從您的頁面中找到任何信息,即您成功地從 WordPress 搜索結果中排除了頁面。

如何從 WordPress 搜索中排除帖子

在介紹中,我們告訴您 WordPress 會瀏覽帖子和頁面,並假設您不希望頁面顯示在結果中。 但是,如果您不希望帖子包含在這些結果中怎麼辦? 如果是這樣,您可以對代碼進行一項簡單的更改並排除帖子而不是頁面:

同樣,您需要重複上面顯示的 3 個簡單步驟,但在第 3 行中進行了簡單的更改。 不要將帖子類型設置為“ page ”,您必須將其設置為“ posts ”:

 $query->set('post_type', 'posts');

不要忘記保存所有內容,您就完成了。

使用插件從搜索結果中排除頁面/帖子

我們將向您展示一個插件,而不是使用代碼,它可以為您完成相同的工作,並使一切更加用戶友好。

搜索排除

價格:免費

搜索排除

我們用於這項工作的插件是搜索排除。 使用插件再簡單不過了:

  1. 導航到插件 - >添加新
  2. 搜索“搜索排除”
  3. 安裝並激活插件
  4. 轉到您的任何帖子和頁面
  5. 在右側面板上,找到“搜索排除”複選框,您可以在其中決定是否要將帖子/頁面從搜索結果中排除。

排除多個帖子/頁面後,您可以在插件設置( Settings->Search Exclude )中輕鬆找到排除項目的列表。 在列表中,您可以再次使用複選框來更改帖子/頁面的狀態。

如何僅從搜索結果中排除某些頁面/帖子

無論您想要排除在搜索結果中顯示的只有一頁、兩頁還是十頁都沒有關係,您可以通過實現代碼輕鬆做到這一點。 在您匆忙將代碼複製粘貼到您的 functions.php 文件之前,我們建議您準備好您不希望出現在搜索結果中的頁面。 您將需要頁面 ID:

  1. 轉到頁面->所有頁面
  2. 找到要排除的頁面,然後單擊“編輯”
  3. 在地址欄中,找到“post=6”或類似的數字代表頁面 ID

準備好頁面的 ID 號後,您就可以準備代碼了:

  1. 轉到 function.php 文件並打開它
  2. 複製並粘貼以下代碼:
 函數 jp_search_filter( $query ) {
如果 ( $query->is_search && $query->is_main_query() ) {
$query->set('post__not_in', array(1,2,3,4,5,6));
}
}

add_action('pre_get_posts', 'jp_search_filter');
  1. 在第 3 行,將括號中的數字更改為您從頁面上讀取的 ID 號。 在這個例子中,我們排除了 6 個頁面,它們各自的 ID 為 1 到 6。
  2. 保存更改並完成

安裝代碼後,您可以根據需要自由編輯它。 如果您將來有時需要包含其中一個頁面,只需從代碼中刪除其 ID 號即可。 將更多頁面添加到“排除的籃子”也是如此。 例如,如果您創建了一個不想在搜索結果中顯示的新頁面,請隨時將其 ID 號添加到代碼中。

允許在 WordPress 中使用語音搜索

在智能手機成為我們生活的重要組成部分後,語音搜索得到了迅速發展。 雖然從來都不是完美的,但在智能手機上搜索某些東西已經讓打電話等事情變得容易多了。 是的,你仍然必須非常小心發音,因為你最終可能會打電話給你不想要的人,或者你的文字演講最終可能會與你剛剛所說的不太接近。 另外,問 Siri 愚蠢的問題總是很有趣,對吧?

不管你喜不喜歡,很多人都在手機上使用語音搜索功能。 那麼為什麼不讓訪問者以同樣的方式搜索您的網站呢?

也許你不知道你可以用 WordPress 做到這一點,或者你不知道該怎麼做,但現在你沒有藉口了。

這裡有一個插件,可以擴展您的 WordPress 搜索,而不是代碼。

聲音搜索

價格:免費

聲音搜索

在下載和安裝插件之前,重要的是要知道它僅適用於 Chrome 和 Safari。 如果您認為該插件無法在任何其他瀏覽器中運行,那麼它將使您的訪問者能夠使用他們自己的聲音搜索內容。

通過安裝插件,您不會覆蓋文本輸入——如果用戶想通過輸入以標準方式使用搜索框,您應該知道該功能是完整的。

此外,該插件應該與您可能已安裝的任何其他搜索插件一起使用,因此您可以自由地嘗試使用 Relevanssi 或 Search Everything 等插件。

  1. 轉到插件 - >添加新
  2. 搜索“語音搜索”
  3. 安裝並激活插件

就是這樣。 激活插件後,您應該可以毫無問題地使用語音搜索。 你覺得這個功能怎麼樣?

包起來

除非您有一個簡單的小冊子網站或任何類似的網站,否則您只需要將功能搜索功能嵌入到您的 WordPress 網站中。 如果它是一個定期更新的博客,那就沒有任何藉口了。

在本指南中,我們向您展示瞭如何修改默認的 WordPress 搜索功能。 如果您不喜歡它,有幾個插件可以在幾分鐘內替代標準搜索功能。 無論您的選擇是什麼,都可以通過改進搜索功能來改善您的 WordPress 網站。