どのブログにも必ずある検索フォームの作成方法です。重要な機能なのに非常に簡単に実装することができます。
検索のためのフォームを「searchform.php」、
検索結果を「search.php」に記述します。
searchform.php
inputのnameとidは「s」にしてください。検索パラメータが「s」なので、
https://XXXXX.com/?s=検索ワードとするためです。
labelはなくても動作しますが、以下のリンク先のCodexでは必ずつけるようにと書いてあるのでつけるようにしましょう。
関数リファレンス_get search form – WordPress Codex 日本語版
1 2 3 4 5 6 7 |
<label class="hidden" for="s"><?php echo home_url( '/' ); ?></label> <form method="get" action="<?php echo esc_url( home_url( '/' ) ); ?>"> <input role="search" type="text" placeholder="Search for" value="<?php the_search_query(); ?>" name="s" id="s" /> //検索ボタンを画像にする場合 <input type="image" src="検索ボタン画像のURL" alt="検索" id="searchsubmit" /> </form> |
search.php
検索結果を表示するのは、基本的に記事一覧の時と同じです。
検索結果が1件以上ある場合は「〜件ありました」、0件の場合は「〜に一致する情報は見つかりませんでした」と表示します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
<?php global $wp_query; $total_results = $wp_query->found_posts; ?> <?php if( $total_results >0 ): 「<?php echo esc_html( $s ); ?>」の検索結果 <?php echo $wp_query->found_posts; ?> 件 if(have_posts()): while(have_posts()): the_post(); ?> <h2> <a href="<?php the_permalink(); ?>"> <?php the_title(); ?> </a> </h2> <?php the_excerpt(); ?> <?php endwhile; endif;?> 「<?php echo esc_html( $s ); ?>」に一致する情報は見つかりませんでした。 <?php endif; ?> |