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

コメントを残す

PR

9ineBBの管理人が運営するサイト

WDG WEB DESIGN GALLERY ウェブデザインギャラリー CC0 PHOTO 無料で使える高画質な写真をダウンロード、クレジット表記、リンク不要

9ineBBの最新情報をチェック・購読

Twitter Facebook Google+ Feedly RSS

どこをクリックしてもこの表示を消せます
(3日後以降に再度表示されます)