ホームページ >CMS チュートリアル >&#&プレス >WordPressサイトに高度な検索を追加する方法
<span><span><span><form</span> method<span>="get"</span> action<span>="<?php bloginfo('url'); ?>"</span>></span> </span><span><span><span><fieldset</span>></span> </span><span><span><span><input</span> 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</span> type<span>="submit"</span>></span>Search<span><span></button</span>></span> </span><span><span><span></fieldset</span>></span> </span><span><span><span></form</span>></span></span>
<span><span><span><form</span> method<span>="get"</span> action<span>="<?php bloginfo('url'); ?>"</span>></span> </span><span><span><span><fieldset</span>></span> </span><span><span><span><input</span> 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</span> type<span>="submit"</span>></span>Search<span><span></button</span>></span> </span><span><span><span></fieldset</span>></span> </span><span><span><span></form</span>></span></span>すべてのカテゴリをリストしたい場合は、タグ:
http://yoursite.com/?s=search+term&category_name=kittens
<span><span><span><form</span> method<span>="get"</span> action<span>="<?php bloginfo('url'); ?>"</span>></span> </span><span><span><span><fieldset</span>></span> </span><span><span><span><input</span> 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</span> name<span>="category_name"</span>></span> </span><span><span><span><option</span> value<span>=""</span>></span>all categories<span><span></option</span>></span> </span><span><span><span><option</span> value<span>="kittens"</span>></span>cute kittens<span><span></option</span>></span> </span><span><span><span><option</span> value<span>="puppies"</span>></span>adorable puppies<span><span></option</span>></span> </span><span><span><span></select</span>></span> </span><span><span><span><button</span> type<span>="submit"</span>></span>Search<span><span></button</span>></span> </span><span><span><span></fieldset</span>></span> </span><span><span><span></form</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>同様に、選択フィールドのすべてのタグのリストを生成できます。
http://yoursite.com/?s=search+term&tag=cockroach高度な検索の進行
<span><span><span><form</span> method<span>="get"</span> action<span>="<?php bloginfo('url'); ?>"</span>></span> </span><span><span><span><fieldset</span>></span> </span><span><span><span><input</span> 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</span> name<span>="tag"</span>></span> </span><span><span><span><option</span> value<span>=""</span>></span>any tag<span><span></option</span>></span> </span><span><span><span><option</span> value<span>="cockroach"</span>></span>cockroaches<span><span></option</span>></span> </span><span><span><span><option</span> value<span>="snake"</span>></span>snakes<span><span></option</span>></span> </span><span><span><span></select</span>></span> </span><span><span><span><button</span> type<span>="submit"</span>></span>Search<span><span></button</span>></span> </span><span><span><span></fieldset</span>></span> </span><span><span><span></form</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>最後に、クエリが実行される前に、PRE_GET_POSTSアクションフックを使用してdabanced_search_query関数を実行します。
<span><span><span><form</span> method<span>="get"</span> action<span>="<span><?php bloginfo('url'); ?></span>"</span>></span> </span><span><span><span><fieldset</span>></span> </span><span><span><span><input</span> 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</span>></span>Refine search to posts containing chosen tags:<span><span></p</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>', </span></span><span> <span>'<input type="checkbox" name="taglist[]" value="', $tag->slug, '" /> ', </span></span><span> <span>$tag->name, </span></span><span> <span>"</label>\n"; </span></span><span><span>} </span></span><span><span>?></span> </span><span><span><span><button</span> type<span>="submit"</span>></span>Search<span><span></button</span>></span> </span><span><span><span></fieldset</span>></span> </span><span><span><span></form</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の検索クエリパラメーターを「query_vars」フィルターを使用して変更できます。これにより、デフォルトの「s」パラメーターをニーズにより具体的なものに変更できます。たとえば、URLをよりユーザーフレンドリーにするために「search_term」に変更できます。クエリとループ。ポストタイプ、カテゴリ、タグ、著者など、クエリをカスタマイズするために使用できる多数のパラメーターを提供します。これにより、高度な検索機能を作成するための強力なツールになります。
以上がWordPressサイトに高度な検索を追加する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。