
29:検索結果一覧表示用テンプレート作成
公開日:2018年11月06日
WordPressは用途に応じたテンプレート名があらかじめ決めれています。主なテンプレート名は以下です。
front-page.php | フロントページ表示用テンプレート |
---|---|
home.php | 主に固定ページの上にあるブログ投稿一覧表示用テンプレート |
single.php | 投稿詳細ページ表示用テンプレート |
page.php | 固定ページ表示用テンプレート |
archive.php | アーカイブ一覧全般表示用テンプレート |
category.php | カテゴリー一覧表示用テンプレート |
tag.php | タグ一覧表示用テンプレート |
search.php | 検索結果一覧表示用テンプレート |
date.php | 日付別一覧表示用テンプレート |
404.php | 404エラー表示用テンプレート |
searchform.php | 検索フォーム用テンプレート |
comments.php | コメント用テンプレート |
「search.php」はサイト内検索フォームから検索した「検索結果一覧」を表示する時に使用するテンプレートです。
このテンプレートが呼び出される時、メインループデータには検索結果データが入ります。
検索結果表示用テンプレート
検索結果一覧に使用できる「search.php」を新しく作成します。
search.php
<?php get_header(); ?> <?php // 検索値取得 $s = $_GET['s'] ? $_GET['s'] : NULL; // メインループ条件変更 $paged = max(1, get_query_var('paged')); $args = array ( 'paged' => $paged, 'post_status' => 'publish', 'post_type' => 'post', 's' => $s, ); query_posts( $args ); // 検索結果の記事数 $found_posts = $wp_query->found_posts; ?> <div class="content"> <div class="main"> <?php // 検索タイトル表示 ?> <div class="main-loop"> <div class="inner"> <h1><?php the_search_query();?> の検索結果:<?php echo $found_posts;?>件</h1> <?php /***** メインループ開始 *****/ ?> <?php if (have_posts()) :?> <?php while (have_posts()) : the_post(); ?> <?php $id = get_the_ID(); ?> <?php // テンプレートパーツ読み込み:一覧 ?> <?php get_template_part('content'); ?> <?php endwhile; ?> <?php else: ?> <?php // テンプレートパーツ読み込み:記事なし ?> <?php get_template_part('content','none'); ?> <?php endif; ?> <?php /***** メインループ終了 *****/ ?> <?php // ページネーション ?> <?php if (pagination()) : ?> <div class="pagination"><?php echo pagination(); ?></div> <?php endif; ?> </div><!-- /.inner --> </div><!-- /.main-loop --> </div><!-- /.main --> <?php get_sidebar(); ?> </div><!-- /.content --> <?php get_footer();
調べてみよう
なぜメインループデータを上書きしているのか考えてみよう。
このページで出てくる関数
WordPress関数は「公式サイトのドキュメント」で確認しましょう。
WordPressプロパティ
$wp_query->found_posts
WordPress関数
get_header()
query_posts()
the_search_query()
have_posts()
the_post()
get_the_ID()
get_template_part()
get_sidebar()
get_footer()
オリジナル関数
pagination()
PHP関数
max()
array()
欠席者対応:wireframe11
同じタグのコンテンツ
同じカテゴリーのコンテンツ