今回は、検索結果 (一覧) ページである search.php を作成します。
ウィジェットでもを配置して、サイト内検索ができるようにしておくと
便利ですね。
前々回の記事 「archive.php を作成する」
前回の記事 「home.php を作成する」
と同様、index.php の亜種です。
ですので、前々回、前回と同様、
index.php をコピーして search.php にリネームし、これをベースとします。
<?php get_header(); ?> <!-- 一覧表示部分ここから --> <h2 class="archive-title"><?php bloginfo('name'); ?></h2> <?php if (have_posts()) : while (have_posts()) : the_post(); ?> <div class="entry hentry"> <h3 class="entry-title"><a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></h3> <div class="entry-box"> <span class="entry-date"> 公開:<time class="published" datetime="<?php the_time('c'); ?>"><?php the_time(get_option('date_format')); ?></time> </span> <br /><?php the_category(', '); ?><?php the_tags('', ', '); ?> </div> <p class="entry-excerpt"><?php echo mb_substr(get_the_excerpt(), 0, 40); ?>...</p> <p class="entry-more"><a href="<?php the_permalink() ?>">続きを見る</a></p> </div> <?php endwhile; else : ?> <p>記事がありません</p> <?php endif; ?> <!-- 一覧表示部分ここまで --> <?php get_footer(); ?>
ハイライト表示している部分が変更対象となります。
archive.php や home.php のときと同様、HTML タイトルの切り替えは
header.php に既に仕込み済みですので、
修正部分はメインコンテンツ内のタイトル表示と
ページネーションを表示する部分の組み込みになります。
検索結果のページなので、表示する記事がなかった場合の
文言表示もついでに変えておきましょうか・・・
<?php get_header(); ?> <!-- 一覧表示部分ここから --> <h2 class="archive-title">「<?php echo esc_html($s); ?>」の検索結果</h2> <?php if (have_posts()) : while (have_posts()) : the_post(); ?> <div class="entry hentry"> <h3 class="entry-title"><a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></h3> <div class="entry-box"> <span class="entry-date"> 公開:<time class="published" datetime="<?php the_time('c'); ?>"><?php the_time(get_option('date_format')); ?></time> </span> <br /><?php the_category(', '); ?><?php the_tags('', ', '); ?> </div> <p class="entry-excerpt"><?php echo mb_substr(get_the_excerpt(), 0, 40); ?>...</p> <p class="entry-more"><a href="<?php the_permalink() ?>">続きを見る</a></p> </div> <?php endwhile; else : ?> <p>お探しの記事はありませんでした</p> <?php endif; ?> <?php if (have_posts() && function_exists("pagination")) { // 一覧ページネーション pagination($wp_query->max_num_pages); } ?> <!-- 一覧表示部分ここまで --> <?php get_footer(); ?>
4行目のメインコンテンツ内のタイトルは、
検索ワードを埋め込んだ形で、『「[検索ワード]」の検索結果』
として表示します。 ($s には検索ワードが入ってきます)
18行目は、(全体として記事があろうがなかろうが) 検索結果が表示される
一覧ですので、表示記事がなかった際のメッセージ表示を
ちょっとだけ変更しています。
20行目から25行目まではページネーションの組み込み部分です。
組み込みに関しては archive.php や home.php の場合と全く同じです。
組み込み処理の詳細は 「archive.php を作成する」 を参照してください。
一覧ページネーションを出力している自作関数の具体的な処理内容は、
「一覧ページネーション を表示する」 にて。
はい、終わりです。
一覧系のページの場合は、やっぱりどれも大差ないので、
一つ作ってしまえば、後は楽ですね。
これで、作成予定の一覧系のテンプレートは基本的な処理を
全て作り終えましたので、次回からは投稿ページや固定ページの
単独記事のページの作成にかかりたいと思ってます。
では、また次回・・・