クライアントからサイト制作を依頼された際に、
「検索機能もつけてほしい」
と依頼されることがあるかもしれません。
実際問題、求人サイトや不動産サイトなど、キーワードを入力して検索して、条件に合ったものを表示させる…なんてことがあったりします。
そんな中、WordPressでサイトを制作していればPHPを使って検索機能を比較的簡単に設置することができるのです!
検索機能を設置するにあたって必要になるのが
- search.php
- searchform.php
の2つのファイルになります。
search.phpは検索結果ページとなるものです。このPHPファイルのレイアウトがそのまま検索結果ページに反映されることとなります。
searchform.phpは検索フォームの形を決める設定ファイルになります。このファイルのデザインで検索フォームが表示されることとなります。
searchform.phpのレイアウトを決める
上記でも書いたように、searchform.phpは検索フォームのレイアウトを決めるものとなります。基本コードは以下になります!
<form role="search" method="get" action="<?php echo home_url( '/' ); ?>"> <label>検索:</label> <input type="text" name="s"> <input type="submit" value="検索"> </form>
このコードを記述してあげると下の画像のような検索フォームを表示してくれます!
なお、上記コードの
action=”<?php echo home_url( ‘/’ ); ?>
を入れることで、検索対象のサイトが何かを判断しています。
また、
<form role="search" method="get" action="<?php echo home_url( '/' ); ?>">
ここの
method=”get”
ですが、
method=”post”
でも取得はできます。
ただ、postの場合2ページ目以降がうまく取得できなくなってしまうので、getとしています。
一応知識として覚えておくとよろしいかと思います!
このコードをsearchform.phpnに記述して保存・サーバーにある適用しているテーマ内にUPすることで、サイト内で検索フォームを表示させたいところに
<?php get_search_form(); ?>
を記述してあげることでsearchform.phpで設定したレイアウトの検索フォームを表示させてくれます!
検索結果ページとなるsearch.phpを作成しよう!
検索フォームを設置したら、続いて検索結果ページになるsearch.phpを作成しましょう!
見本として以下のようなsearch.phpを作成しました。
検索内容:<?php the_search_query(); ?> <?php global $query_string; query_posts($query_string . "&post_type=page"); ?> <?php if(have_posts()): ?> <?php while(have_posts()) : the_post(); ?> 検索キーワードがサイトに存在する固定ページにあった時に表示する内容 <?php endwhile; ?> <?php else: ?> 検索キーワードがサイトに存在する固定ページになかった時に表示する内容 <?php endif; ?>
上記コードの1行目にある
<?php the_search_query(); ?>
このコードが検索キーワードを表示させてくれるものになります!
例えば、不動産サイトの検索フォームに“東京都”と入れて検索した時に、上記コードを記述した検索結果ページには
検索内容:東京都
と表示されるようになります!
また、上記の見本コードは固定ページを検索対象としていますが、投稿ページを対象とする場合は
[htmp]
[/html]
上の3行目のように“&post_type=page”を
“&post_type=post”
と変更してあげることで検索対象が投稿ページになります!
ブログの記事を検索対象にさせる場合などには上のように“&post_type=post”を使ってあげるとうまく検索されるのではないかと思われます!
以上がWordPressにおける検索機能設置に関する説明になります。
また新たな情報などが入ったら逐一このブログにて紹介していければいいなぁ、と思います(*^-^)/