記事一覧

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

不要なヘッダーを除去する

今回は不要なヘッダーを除去してみます。 またまた時間が空いてしまってすみません・...

記事を読む

eyecatch_template

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

今回は 個別投稿記事を表示する single.php 作成の続きです。 前回作成...

記事を読む

eyecatch_template

必要なテンプレートの種類

WordPressテーマを作成するには、訪問者がアクセスするページ種類ごとに テ...

記事を読む

カレンダー

2024年12月
« 7月    
1234567
891011121314
15161718192021
22232425262728
293031  
PAGE TOP ↑