WordPress 検索クエリを取得して既定値としてフォームに表示する
PR
WordPressの通常の検索ボックスでは、検索ワードで検索した後に表示される検索結果のページでは、入力した文字が空の状態になりますね、Google検索みたいに続けてブログ内を検索したい場合は検索ワードの一部を変更して次々検索することが多いと思います。
そこで、今回は検索ボックスをカスタマイズして検索ワードは残しておくようにする方法です。
WordPress で検索クエリを取得する
WordPressの場合はトップページのURLのあと ?s=検索ワード
と付けると、検索される仕組みとなっています。なのでURLパラメータをPHPのGETで取得しても良いのですが、Wordpressには検索クエリを取得するテンプレートタグがあるのでそちらを使うのが簡単です
echo get_search_query()
get_search_query() で検索クエリの取得をします、あとは echo してやれば検索クエリ(検索ワード)を出力することが出来ます、この値をinputタグのデフォルト値として検索ページが表示されたときに出力してやれば良い
WordPress 検索ボックスのカスタマイズ
<div id="search"> <form method="get" action="<?php bloginfo("url") ?>"> <input type="text" name="s" placeholder="Search ブログ内を検索" value="<?php if(get_search_query()) echo get_search_query() ?>"> <input type="submit" value="検索"> </form> </div>
これは、基本的なWordpressでの検索ボックスを設置するコードに、検索クエリを保持するようにしたものです。
検索結果のページかどうかは、クエリがあるのか無いのかを条件にして「クエリが有る=検索結果のページ」という判断で、そうではない場合は「検索結果のページではない=検索ボックスの値は空に」という具合の処理になります。
もっと砕いて言えば、inputのvalueの値に以下を突っ込んだだけです
<?php if(get_search_query()) echo get_search_query() ?>
コレ以外は特に何もしていません
記事数が多いサイトや、データベース的なサイトの場合はこういうのを使って少しでもユーザビリティをアップしてみてはいかがでしょうか?
PR
COMMENT