検索
ホームページCMS チュートリアル&#&プレスWordPressサイトに高度な検索を追加する方法

How to Add an Advanced Search to Your WordPress Site

WordPressサイトに高度な検索を追加する方法

キーテイクアウト

  • WordPressの検索フォームは、WordPressコアの奥深くにある他のパラメーターを使用して、より焦点を絞った検索結果を可能にすることにより、基本的なクエリストリングパラメーター「S」を超えて強化できます。
  • 検索結果は、それぞれのスラグをそれぞれ「category_name」または「タグ」パラメーターに渡すことにより、カテゴリまたはタグで洗練できます。これは、プラグインを必要とせずに実行できます
  • 高度な検索は、PHPアレイパラメーターを使用して複数の値でさらに洗練できます。これは、WordPressテーマのfunctions.phpファイルでインターセプトして設定できます。これにより、ユーザーはより集中した検索のために複数のタグを選択できます。
  • WordPress検索フォームの大部分は、「S」という名前の単一のクエリストリングパラメーターを設定します。
  • それは何も悪いことではなく、長年にわたって唯一の選択肢だと思いました。 ただし、プラグインの助けがなければ、より高度なクエリが可能です(ただし、たくさんありますが)。 WordPressコアの奥深くにあるアプリケーションは、他のいくつかのクエリストリングパラメーターを解析し、それらを使用して、より焦点を絞った検索結果を返します。パラメーター名をリストする初歩的なドキュメントがいくつかあります。
添付ファイル
<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>
    attachment_id
  • 著者
  • 著者_name
  • cat
  • category_name
  • comments_popup
  • day
  • エラー
  • feed
  • hour
  • m
  • minute
  • 月num
  • name
  • p
  • page_id
  • ページング
  • pageName
  • post_parent
  • post_type
  • preview
  • second
  • static
  • subpost
  • subpost_id
  • タグ
  • tag_id
  • tb
  • w
  • year
私はこれらすべての作業が期待されているとは確信しておらず、いくつかは少し無意味ですが、wp_queryに渡すことができるパラメーターと一致しています。したがって、オプションを自動化するために、PHPのスミッジを使用してHTMLを使用して高度な検索フォームを作成できます。

カテゴリごとに検索を改良します SLUGをCategory_Nameパラメーターに渡すことにより、結果をカテゴリに制限できます。

検索フォームにより、ユーザーは検索を特定のカテゴリに絞り込むことができます。
<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>
すべてのカテゴリをリストしたい場合は、タグ:
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>
タグ

で検索を改良します 検索結果は、スラグをタグパラメーターに渡すことにより、タグに制限できます。

したがって、検索は結果を特定のタグに制限する可能性があります。
<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>
同様に、選択フィールドのすべてのタグのリストを生成できます。
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>

複数の値で検索を改良する場合はどうなりますか?たとえば、ユーザーは2つ以上のタグを選択し、結果のページをすべて設定する必要があります。 URLパラメーターのみを使用してこれを達成することはできませんが、HTML検索フォームを定義することから始めましょう。

タグリストという名前のPHPアレイパラメーターを使用したことに注意してください 。 WordPressによってすでに予約されているもの以外の名前は任意の名前を使用できます(上記のリストを参照)。 WordPressテーマのfunctions.phpファイルで検索送信をインターセプトできるようになりました。 Advanced_search_query関数は、検索がアクティブであるかどうかを検出し、それに応じてwp_query tag_slug__andパラメーターを設定します。
<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>
最後に、クエリが実行される前に、PRE_GET_POSTSアクションフックを使用してdabanced_search_query関数を実行します。
<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>
WordPressに高度な検索機能を追加するのは非常に簡単ですが、それが可能であると認識している開発者はほとんどいません...おそらく、ドキュメントと例が少しまばらであるためです
<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>
。偶然に発見したので、次のWordPressプロジェクトでこのコードが役立つことを願っています。 WordPressでの高度な検索に関するよくある質問 WordPressで検索結果をカスタマイズするにはどうすればよいですか?

​​

WordPressで検索結果をカスタマイズすることは、wp_queryクラスを使用して実現できます。このクラスを使用すると、特定のパラメーターを定義して検索結果を調整できます。たとえば、投稿タイトル内でのみ検索するパラメーターを設定したり、特定の投稿タイプを除外したり、カスタムフィールド内で検索したりできます。また、高度な検索カスタマイズオプションを提供するSearchWPなどのプラグインを使用することもできます。 get_the_tags()関数を使用することにより、特定の投稿に関連付けられたタグを取得できます。これは、より洗練された検索エクスペリエンスを作成するために使用でき、ユーザーは特定のタグで投稿を検索できます。

WordPressの検索クエリパラメーターを変更するにはどうすればよいですか?

​​

WordPressの検索クエリパラメーターを「query_vars」フィルターを使用して変更できます。これにより、デフォルトの「s」パラメーターをニーズにより具体的なものに変更できます。たとえば、URLをよりユーザーフレンドリーにするために「search_term」に変更できます。クエリとループ。ポストタイプ、カテゴリ、タグ、著者など、クエリをカスタマイズするために使用できる多数のパラメーターを提供します。これにより、高度な検索機能を作成するための強力なツールになります。

検索結果から特定の投稿タイプを検索結果から除外するにはどうすればよいですか? pre_get_postsのアクションフックwp_queryクラスと併せて。 「post_type」パラメーターを、検索結果に含める投稿タイプの配列に設定して、他のすべてを効果的に除外します。はい、WP_Queryの「Meta_Query」パラメーターを使用して、WordPressのカスタムフィールド内で検索できます。これにより、カスタムフィールドキーと値を指定し、これらの基準に一致する投稿を返すことができます。 SearchWP、Relevanssi、Ajax Search Proなどのプラグインを使用します。これらのプラグインは、部分的なマッチング、キーワードのステミング、検索の重み付けなどの高度な検索機能を提供し、より良いユーザーエクスペリエンスを提供します。 get_search_form()関数を使用して、プラグインなしでWordPressで検索フォームを作成できます。この関数は、検索フォームのHTMLを生成します。これは、ニーズに合わせてカスタマイズできます。 get_search_query()関数。この関数は検索クエリ文字列を取得し、検索結果ページに検索用語を表示するために使用できます。 wp_queryの「post_per_page」パラメーターを使用して、WordPressの検索結果の数。これにより、ページごとに表示する投稿数を指定し、検索結果の数を効果的に制限できます。

以上がWordPressサイトに高度な検索を追加する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
WordPressでPHPデータと文字列をJavaScriptに渡す方法WordPressでPHPデータと文字列をJavaScriptに渡す方法Mar 07, 2025 am 09:28 AM

PHPデータをjavaScriptに渡すためのベストプラクティス:wp_localize_scriptとwp_add_inline_scriptの比較 PHPファイルに静的文字列内にデータを保存することが推奨される練習です。 JavaScriptコードでこのデータが必要な場合は、INCORPORAT

WordPressプラグインでPDFファイルを埋め込み、保護する方法WordPressプラグインでPDFファイルを埋め込み、保護する方法Mar 09, 2025 am 11:08 AM

このガイドは、WordPress PDFプラグインを使用して、WordPressの投稿とページにPDFファイルを埋め込み、保護する方法を示しています。 PDFは、カタログからプレゼンテーションまで、さまざまなコンテンツに対してユーザーフレンドリーで普遍的にアクセス可能な形式を提供します。 この方法は

WordPressは初心者にとって簡単ですか?WordPressは初心者にとって簡単ですか?Apr 03, 2025 am 12:02 AM

WordPressは、初心者が簡単に始めることができます。 1.バックグラウンドにログインした後、ユーザーインターフェイスは直感的であり、シンプルなダッシュボードは必要なすべての関数リンクを提供します。 2。基本操作には、コンテンツの作成と編集が含まれます。 WysiWygエディターは、コンテンツの作成を簡素化します。 3.初心者は、プラグインとテーマを介してウェブサイトの機能を拡張でき、学習曲線は存在しますが、練習を通じて習得できます。

なぜWordPressを使用するのはなぜですか?なぜWordPressを使用するのはなぜですか?Apr 02, 2025 pm 02:57 PM

人々は、その力と柔軟性のためにWordPressを使用することを選択します。 1)WordPressは、さまざまなWebサイトのニーズに適した、使いやすさとスケーラビリティを備えたオープンソースのCMSです。 2)豊富なテーマとプラグイン、巨大なエコシステム、強力なコミュニティサポートがあります。 3)WordPressの作業原則は、テーマ、プラグイン、コア関数に基づいており、PHPとMySQLを使用してデータを処理し、パフォーマンスの最適化をサポートします。

WordPressはまだ無料ですか?WordPressはまだ無料ですか?Apr 04, 2025 am 12:06 AM

WordPressのコアバージョンは無料ですが、使用中に他の料金が発生する場合があります。 1。ドメイン名とホスティングサービスには支払いが必要です。 2。高度なテーマとプラグインが充電される場合があります。 3.プロフェッショナルサービスと高度な機能が請求される場合があります。

WordPressの費用はいくらですか?WordPressの費用はいくらですか?Apr 05, 2025 am 12:13 AM

WordPress自体は無料ですが、使用するには余分な費用がかかります。1。WordPress.comは、無料から支払いまでの範囲のパッケージを提供し、価格は月あたり数ドルから数十ドルまでの範囲です。 2。WordPress.orgでは、ドメイン名(年間10〜20米ドル)とホスティングサービス(月額5〜50米ドル)を購入する必要があります。 3.ほとんどのプラグインとテーマは無料で、有料価格は数十から数百ドルです。適切なホスティングサービスを選択し、プラグインとテーマを合理的に使用し、定期的に維持および最適化することにより、WordPressのコストを効果的に制御および最適化できます。

WixまたはWordPressを使用する必要がありますか?WixまたはWordPressを使用する必要がありますか?Apr 06, 2025 am 12:11 AM

WIXは、プログラミングの経験がないユーザーに適しており、WordPressは、よりコントロールと拡張機能を必要とするユーザーに適しています。 1)WIXはドラッグアンドドロップエディターとリッチテンプレートを提供しているため、Webサイトをすばやく構築できます。 2)オープンソースのCMSとして、WordPressには巨大なコミュニティとプラグインエコシステムがあり、詳細なカスタマイズと拡張をサポートしています。

ワードプレスは何に適していますか?ワードプレスは何に適していますか?Apr 07, 2025 am 12:06 AM

wordpressisisgoodforvirtalayanywebprojectoitsversitilityasacms.itexcelsin:1)ユーザーフレンドリー、柔軟性と柔軟性と顧客化の維持、およびプルージンの数値化; 3)seooptimization;

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。