搜尋
首頁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
    WordPress與其他網站構建者相比如何?WordPress與其他網站構建者相比如何?Apr 28, 2025 am 12:04 AM

    WordPressExcelSoverotherWeberSiteBuilderSduetoItsflexible,可伸縮性,andopen-sourcenature.1)它'saversatilecmswithExtEnsextEnsexenSiveCustomizedOptionsVIATHEMESANDPLUGINS.2)它的alllearbutoffersbutoffersbutoffersbutoffersbutefersbuterbutfulcontrololoncemastered.3)

    5個WordPress插件,供開發人員在2025年使用5個WordPress插件,供開發人員在2025年使用Apr 27, 2025 am 08:25 AM

    2025年網站開發的七個必備WordPress插件 在2025年建立頂級WordPress網站需要速度,響應能力和可擴展性。 實現這種有效的實現通常取決於戰略插件的選擇。 這篇文章Highlig

    您將使用WordPress做什麼?您將使用WordPress做什麼?Apr 27, 2025 am 12:14 AM

    WordPresscanbeusedforvariouspurposesbeyondblogging.1)E-commerce:WithWooCommerce,itcanbecomeafullonlinestore.2)Membershipsites:PluginslikeMemberPressenableexclusivecontentareas.3)Portfoliosites:ThemeslikeAstraallowstunninglayouts.Ensuretomanageplugins

    WordPress適合創建投資組合網站嗎?WordPress適合創建投資組合網站嗎?Apr 26, 2025 am 12:05 AM

    是的,wordpressisisexcellentforcortingaportfoliowebsite.1)itoffersnumeroversnumeroverportfolio-spificthemeslike'astra'astra'astra'astra'astra'astra'astra'astra'astra'elementor'Enelementor'enableIntiviveSiveSign,Thoughtemanycanslowthesite.3)

    使用WordPress而不是從頭開始編碼網站的優點是什麼?使用WordPress而不是從頭開始編碼網站的優點是什麼?Apr 25, 2025 am 12:16 AM

    WordPressisadvantageousovercodingawebsitefromscratchdueto:1)easeofuseandfasterdevelopment,2)flexibilityandscalability,3)strongcommunitysupport,4)built-inSEOandmarketingtools,5)cost-effectiveness,and6)regularsecurityupdates.Thesefeaturesallowforquicke

    是什麼使WordPress成為內容管理系統?是什麼使WordPress成為內容管理系統?Apr 24, 2025 pm 05:25 PM

    WordPressIsAcmsDuetoItseAsofuse,自定義,USERMANAMECTION,SEO和COMMUNITYSUPPORT.1)ITSIMPLIFIESCONTENTMANGAMEWITHANINTUISIDERFEEFFECE.2)提供extentensiveCustomizationThroughThroughTheMesandPlugins.3)supportrobustuserrolesandplugins.4)supportrobustuserrolesandpermissions.4)增強

    wordpress怎麼加評論框wordpress怎麼加評論框Apr 20, 2025 pm 12:15 PM

    在 WordPress 網站上啟用評論功能,可以為訪客提供參與討論和分享反饋的平台。為此,請按照以下步驟操作:啟用評論:在儀錶盤中,導航至“設置”>“討論”,並選中“允許評論”複選框。創建評論表單:在編輯器中,單擊“添加塊”並蒐索“評論”塊,將其添加到內容中。自定義評論表單:通過設置標題、標籤、佔位符和按鈕文本來定制評論塊。保存更改:單擊“更新”以保存評論框並將其添加到頁面或文章中。

    wordpress怎麼複製子站wordpress怎麼複製子站Apr 20, 2025 pm 12:12 PM

    如何復制 WordPress 子站?步驟:在主站創建子站。在主站克隆子站。將克隆導入目標位置。更新域名(可選)。分開插件和主題。

    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脫衣器

    Video Face Swap

    Video Face Swap

    使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

    熱工具

    ZendStudio 13.5.1 Mac

    ZendStudio 13.5.1 Mac

    強大的PHP整合開發環境

    記事本++7.3.1

    記事本++7.3.1

    好用且免費的程式碼編輯器

    DVWA

    DVWA

    Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

    SublimeText3 Mac版

    SublimeText3 Mac版

    神級程式碼編輯軟體(SublimeText3)

    SublimeText3 英文版

    SublimeText3 英文版

    推薦:為Win版本,支援程式碼提示!