今回は、ブログ投稿インデックス (一覧) ページである home.php を作成します。
home.php は、WordPress の管理画面 [設定 - 表示設定] で
フロントページの表示を 「最新の投稿」 とした場合に動作します。
このテンプレートが存在しなかった場合は、 index.php がお仕事を
してくれますので、別になくても問題ないのですが、
他のテンプレートは用意して、ここだけ index.php に仕事をさせるのも
気持ち悪いので、作成しておくことにします。
基本的には、前回の記事 「archive.php を作成する」
と同様、index.php の亜種です。
うーん、もしかしたら archive.php の方が近いかな。
まぁ、どちらを基にしても大差ないので、前回と同様、
index.php をコピーして home.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 のときと同様、HTML タイトルの切り替えは header.php に
既に仕込み済みですので、修正部分はメインコンテンツ内のタイトル表示と
ページネーションを表示する部分の組み込みになります。
<?php get_header(); ?> <!-- 一覧表示部分ここから --> <h2 class="archive-title">投稿記事一覧</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行目のメインコンテンツ内のタイトルは、動作的に
ブログ投稿インデックス一覧にしか成り得ないので、
「投稿記事一覧」 として固定表示します。
20行目から25行目まではページネーションの組み込み部分です。
組み込みに関しては 「archive.php を作成する」 と
全く同じなので、詳細な説明はこちらを参照してください。
一覧ページネーションを出力している自作関数の具体的な処理内容は、
「一覧ページネーション を表示する」 を参照のこと。
はい、終わりです。
なんだか拍子抜けかもしれませんが、これまでの準備の賜物ということで (笑)
一覧系のページはどれも大差ないので、このままの勢いで、
次は、検索結果 (一覧) ページ の search.php を起こす予定です。
ではまた次回・・・