搜尋
首頁CMS教程&#&按如何在WordPress網站上添加高級搜索

鑰匙要點

    通過使用WordPress Core內深處的其他參數,可以增強WordPress搜索表格超出基本Querystring參數“ s”,從而允許更加集中的搜索結果。
  • >搜索結果可以通過類別或標籤來改進,分別將其各自的sl子傳遞到“ category_name”或“ tag”參數。這可以在不需要插件的情況下完成。
  • 使用PHP數組參數可以通過多個值進一步完善高級搜索,可以在WordPress主題的functions.php文件中攔截並設置。這允許用戶選擇多個標籤以進行更集中的搜索。
  • 大多數WordPress搜索表格設置了一個名為“ S”的單個Querystring參數:
  • 這沒什麼錯,我認為這是很多年來的唯一選擇。 但是,在沒有插件的情況下,可以進行更高級的查詢(儘管有很多可用)。在WordPress核心內部,應用程序解析了其他幾個Querystring參數,並使用它們來返回一組更為專注的搜索結果集。有一些基本文檔列出了參數名稱:
附件
<span><span><span><form> method<span>="get"</span> action<span>="<?php bloginfo('url'); ?>"</span>></form></span>
</span><span><span><span><fieldset>></fieldset></span>
</span><span><span><span><input> type<span>="text"</span> name<span>="s"</span> value<span>=""</span> placeholder<span>="search…"</span> maxlength<span>="50"</span> required<span>="required"</span> /></span>
</span><span><span><span><button> type<span>="submit"</span>></button></span>Search<span><span></span>></span>
</span><span><span><span></span>></span>
</span><span><span><span></span>></span></span></span></span></span></span>
  • 作者
  • fure_name
  • cat
  • > category_name
  • > comment_popup
  • >錯誤
  • feed
  • 小時
  • m
  • 分鐘
  • 月份
  • >名稱
  • p
  • page_id
  • >
  • > Pagename
  • > post_parent
  • > post_type
  • 預覽
  • 第二
  • >靜態
  • >子
  • subpost_id
  • >標籤
  • tag_id
  • > tb
  • w
  • 我不相信所有這些工作,而有些工作有些毫無意義,但是它們可以與您可以傳遞給WP_QUERY的參數相匹配。因此,我們可以使用帶有PHP的SMIDGEN的HTML創建高級搜索表格,以使選項自動化。

    按類別搜索
    <span><span><span><form> method<span>="get"</span> action<span>="<?php bloginfo('url'); ?>"</span>></form></span>
    </span><span><span><span><fieldset>></fieldset></span>
    </span><span><span><span><input> type<span>="text"</span> name<span>="s"</span> value<span>=""</span> placeholder<span>="search…"</span> maxlength<span>="50"</span> required<span>="required"</span> /></span>
    </span><span><span><span><button> type<span>="submit"</span>></button></span>Search<span><span></span>></span>
    </span><span><span><span></span>></span>
    </span><span><span><span></span>></span></span></span></span></span></span>
    您可以通過將其slug傳遞到category_name參數,例如,例如,將結果限制為類別。
    http://yoursite.com/?s=search+term&category_name=kittens
    我們的搜索表可以使用戶將其搜索完善為特定類別:
    <span><span><span><form> method<span>="get"</span> action<span>="<?php bloginfo('url'); ?>"</span>></form></span>
    </span><span><span><span><fieldset>></fieldset></span>
    </span><span><span><span><input> type<span>="text"</span> name<span>="s"</span> value<span>=""</span> placeholder<span>="search…"</span> maxlength<span>="50"</span> required<span>="required"</span> /></span>
    </span><span><span><span><select> name<span>="category_name"</span>></select></span>
    </span><span><span><span><option> value<span>=""</span>></option></span>all categories<span><span></span>></span>
    </span><span><span><span><option> value<span>="kittens"</span>></option></span>cute kittens<span><span></span>></span>
    </span><span><span><span><option> value<span>="puppies"</span>></option></span>adorable puppies<span><span></span>></span>
    </span><span><span><span></span>></span>
    </span><span><span><span><button> type<span>="submit"</span>></button></span>Search<span><span></span>></span>
    </span><span><span><span></span>></span>
    </span><span><span><span></span>></span></span></span></span></span></span></span></span></span></span>
    如果您想列出所有類別,請在標籤:

    >通過TAG
    <span><span><?php </span></span><span><span>// generate list of categories
    </span></span><span><span>$categories = get_categories();
    </span></span><span><span>foreach ($categories as $category) {
    </span></span><span>	<span>echo '<option value="', $category->slug, '">', $category->name, "</option>\n";
    </span></span><span><span>}
    </span></span><span><span>?></span></span></span>
    完善搜索 搜索結果可以通過將其slug傳遞給標籤參數,例如
    http://yoursite.com/?s=search+term&tag=cockroach
    因此,您的搜索可能會將結果限制為某些標籤,例如
    <span><span><span><form> method<span>="get"</span> action<span>="<?php bloginfo('url'); ?>"</span>></form></span>
    </span><span><span><span><fieldset>></fieldset></span>
    </span><span><span><span><input> type<span>="text"</span> name<span>="s"</span> value<span>=""</span> placeholder<span>="search…"</span> maxlength<span>="50"</span> required<span>="required"</span> /></span>
    </span><span><span><span><select> name<span>="tag"</span>></select></span>
    </span><span><span><span><option> value<span>=""</span>></option></span>any tag<span><span></span>></span>
    </span><span><span><span><option> value<span>="cockroach"</span>></option></span>cockroaches<span><span></span>></span>
    </span><span><span><span><option> value<span>="snake"</span>></option></span>snakes<span><span></span>></span>
    </span><span><span><span></span>></span>
    </span><span><span><span><button> type<span>="submit"</span>></button></span>Search<span><span></span>></span>
    </span><span><span><span></span>></span>
    </span><span><span><span></span>></span></span></span></span></span></span></span></span></span></span>
    同樣,您可以為選擇字段生成所有標籤的列表:

    前進的高級搜索
    <span><span><?php </span></span><span><span>// generate list of tags
    </span></span><span><span>$tags = get_tags();
    </span></span><span><span>foreach ($tags as $tag) {
    </span></span><span>	<span>echo '<option value="', $tag->slug, '">', $tag->name, "</option>\n";
    </span></span><span><span>}
    </span></span><span><span>?></span></span></span>
    如果您想通過多個值完善搜索怎麼辦?例如,用戶可以選擇兩個或多個標籤,並且結果頁面必須設置所有標籤。我們不能僅使用URL參數來實現此目標,但讓我們首先定義HTML搜索表格:
    <span><span><span><form> method<span>="get"</span> action<span>="<span><?php bloginfo('url'); ?></span>"</span>></form></span>
    </span><span><span><span><fieldset>></fieldset></span>
    </span><span><span><span><input> type<span>="text"</span> name<span>="s"</span> value<span>=""</span> placeholder<span>="search…"</span> maxlength<span>="50"</span> required<span>="required"</span> /></span>
    </span><span><span><span><p>></p></span>Refine search to posts containing chosen tags:<span><span></span>></span>
    </span><span><span><?php </span></span><span><span>// generate list of tags
    </span></span><span><span>$tags = get_tags();
    </span></span><span><span>foreach ($tags as $tag) {
    </span></span><span>	<span>echo 
    </span></span><span>		<span>'<label>',
    </label></span></span><span>		<span>'<input type="checkbox" name="taglist[]" value="',  $tag->slug, '"> ',
    </span></span><span>		<span>$tag->name,
    </span></span><span>		<span>"\n";
    </span></span><span><span>}
    </span></span><span><span>?></span>
    </span><span><span><span><button> type<span>="submit"</span>></button></span>Search<span><span></span>></span>
    </span><span><span><span></span>></span>
    </span><span><span><span></span>></span></span></span></span></span></span></span></span>
    請注意,我使用了名為taglist的PHP數組參數 。您可以使用WordPress已保留的名稱以外的任何名稱(請參見上面的列表)。 現在,我們可以在WordPress主題的functions.php文件中攔截搜索提交。 Advanced_search_query函數檢測是否有效搜索,然後相應地設置WP_QUERY TAG_SLUG__和參數。
    <span>// advanced search functionality
    </span><span>function advanced_search_query($query) {
    </span>
    	<span>if($query->is_search()) {
    </span>		
    		<span>// tag search
    </span>		<span>if (isset($_GET['taglist']) && is_array($_GET['taglist'])) {
    </span>			<span>$query->set('tag_slug__and', $_GET['taglist']);
    </span>		<span>}
    </span>	
    		<span>return $query;
    </span>	<span>}
    </span>
    <span>}</span>
    最後,我們使用pre_get_posts操作鉤在執行查詢之前運行我們的高級_search_query函數: 將高級搜索設施添加到WordPress非常容易,但很少有開發人員意識到這是可能的……也許是因為文檔和示例有點稀疏

    。我偶然發現了它,希望您在下一個WordPress項目中發現此代碼很有用。

    在WordPress中經常詢問有關高級搜索的問題

    >如何在WordPress中自定義搜索結果?

    >可以通過使用WP_QUERY類自定義WordPress中的搜索結果。此類允許您定義特定參數來調整搜索結果。例如,您可以將參數設置為僅在帖子標題中搜索,排除某些帖子類型,甚至在自定義字段中搜索。您還可以使用提供高級搜索自定義選項的searchwp之類的插件。

    我可以使用標籤來改善wordpress中的搜索結果?

    是的,標籤可以顯著改善WordPress中的搜索結果。通過使用get_the_tags()函數,您可以檢索與特定帖子關聯的標籤。這可以用來創建更精緻的搜索體驗,從而使用戶可以搜索具有特定標籤的帖子。

    >如何使用“ query_vars”過濾器更改WordPress中的搜索查詢參數?這使您可以將默認的“ S”參數更改為更特定於您的需求的東西。例如,您可以將其更改為'search_term',以使您的URL更加用戶友好。

    > wordpress中的wp_query是什麼?

    wp_query是WordPress中的一類,可以創建自定義自定義查詢和循環。它提供了許多參數,您可以使用這些參數來自定義查詢,例如Post類型,類別,標籤,作者等。這使其成為創建高級搜索功能的功能強大的工具。

    >

    我如何從WordPress中的搜索結果中排除某些帖子類型?

    >可以使用' pre_get_posts的動作鉤與WP_QUERY類結合使用。您可以將“ post_type”參數設置為要在搜索結果中包含的帖子類型的數組,有效地排除了所有其他內容。

    我可以在WordPress中的自定義字段中搜索嗎?是的,您可以使用WP_QUERY中的“ meta_query”參數在WordPress中的自定義字段中搜索。這使您可以指定一個自定義字段鍵和值,並返回與這些條件相匹配的帖子。

    >

    >如何改善WordPress中的搜索功能?通過使用SearchWP,Ressienanssi或Ajax Search Pro等插件。這些插件提供了高級搜索功能,例如部分匹配,關鍵字steamming和搜索權重,提供更好的用戶體驗。

    >

    我可以在沒有插件的情況下在WordPress中創建搜索表格嗎?可以通過使用get_search_form()函數在無插件的情況下在WordPress中創建搜索表格。此函數生成了搜索表格的HTML,您可以自定義以適合您的需求。

    >

    如何在WordPress中顯示搜索查詢? get_search_query()函數。此函數檢索搜索查詢字符串,可用於在您的搜索結果頁面上顯示搜索詞。

    我可以限制WordPress中的搜索結果數嗎?通過使用WP_QUERY中的“ post_per_page”參數在WordPress中的搜索數量。這使您可以指定每個頁面顯示的帖子數,從而有效地限制了搜索結果的數量。
  • 以上是如何在WordPress網站上添加高級搜索的詳細內容。更多資訊請關注PHP中文網其他相關文章!

    陳述
    本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
    使用OOP技術創建WordPress插件使用OOP技術創建WordPress插件Mar 06, 2025 am 10:30 AM

    本教程演示了使用面向對象的編程(OOP)原理構建WordPress插件,利用Dribbble API。 讓我們在保留原始含義和結構的同時完善文本以清晰和簡潔。 object-ori

    如何將PHP數據和字符串傳遞給WordPress中的JavaScript如何將PHP數據和字符串傳遞給WordPress中的JavaScriptMar 07, 2025 am 09:28 AM

    將PHP數據傳遞給JavaScript的最佳實踐:WP_LOCALIZE_SCRIPT和WP_ADD_INLINE_SCRIPT的比較是PHP文件中靜態字符串中數據存儲數據的最佳實踐。 如果在您的JavaScript代碼中需要此數據,請合併

    如何使用WordPress插件嵌入和保護PDF文件如何使用WordPress插件嵌入和保護PDF文件Mar 09, 2025 am 11:08 AM

    本指南演示瞭如何使用WordPress PDF插件在WordPress帖子和頁面中嵌入和保護PDF文件。 PDFS為從目錄到演示文稿提供了一種用戶友好的,普遍訪問的格式。 此方法ENS

    對於初學者來說,WordPress容易嗎?對於初學者來說,WordPress容易嗎?Apr 03, 2025 am 12:02 AM

    WordPress對初學者來說容易上手。 1.登錄後台後,用戶界面直觀,簡潔的儀表板提供所有必要功能鏈接。 2.基本操作包括創建和編輯內容,所見即所得的編輯器簡化了內容創建。 3.初學者可以通過插件和主題擴展網站功能,學習曲線存在但可以通過實踐掌握。

    為什麼有人會使用WordPress?為什麼有人會使用WordPress?Apr 02, 2025 pm 02:57 PM

    人們選擇使用WordPress是因為其強大和靈活性。 1)WordPress是一個開源的CMS,易用性和可擴展性強,適合各種網站需求。 2)它有豐富的主題和插件,生態系統龐大,社區支持強大。 3)WordPress的工作原理基於主題、插件和核心功能,使用PHP和MySQL處理數據,支持性能優化。

    WordPress仍然免費嗎?WordPress仍然免費嗎?Apr 04, 2025 am 12:06 AM

    WordPress核心版本是免費的,但使用過程中可能產生其他費用。 1.域名和託管服務需要付費。 2.高級主題和插件可能需要付費。 3.專業服務和高級功能可能需要付費。

    See all articles

    熱AI工具

    Undresser.AI Undress

    Undresser.AI Undress

    人工智慧驅動的應用程序,用於創建逼真的裸體照片

    AI Clothes Remover

    AI Clothes Remover

    用於從照片中去除衣服的線上人工智慧工具。

    Undress AI Tool

    Undress AI Tool

    免費脫衣圖片

    Clothoff.io

    Clothoff.io

    AI脫衣器

    AI Hentai Generator

    AI Hentai Generator

    免費產生 AI 無盡。

    熱門文章

    倉庫:如何復興隊友
    1 個月前By尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
    2 週前By尊渡假赌尊渡假赌尊渡假赌
    Hello Kitty Island冒險:如何獲得巨型種子
    1 個月前By尊渡假赌尊渡假赌尊渡假赌

    熱工具

    EditPlus 中文破解版

    EditPlus 中文破解版

    體積小,語法高亮,不支援程式碼提示功能

    MantisBT

    MantisBT

    Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

    Safe Exam Browser

    Safe Exam Browser

    Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

    Dreamweaver CS6

    Dreamweaver CS6

    視覺化網頁開發工具

    PhpStorm Mac 版本

    PhpStorm Mac 版本

    最新(2018.2.1 )專業的PHP整合開發工具