記事一覧

home.php を作成する

 posted by suzu
テンプレート作成のススメ

今回は、ブログ投稿インデックス (一覧) ページである 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 を起こす予定です。
ではまた次回・・・

関連記事

eyecatch_template

HTMLをデザインする [カラム]

先の記事 「カラムレイアウトを考える」 でも少し触れましたが、 WordPres...

記事を読む

eyecatch_template

一覧ページネーション を表示する

実は、今回から次のテンプレート作成 (の解説) に取り掛かろうと 思っていたので...

記事を読む

eyecatch_template

single.php を作成する – [1]

さて、いよいよ今回からは本丸、 個別投稿記事を表示する single.php を...

記事を読む

カレンダー

2024年11月
« 7月    
 12
3456789
10111213141516
17181920212223
24252627282930
PAGE TOP ↑