WordPressで記事の表示

WordPressでテーマの作成/その5

今日は、いよいよトップページに最新の記事を表示します。『home.php』ファイルを開き、ヘッダーとフッターの間に下記のコードを入力します。

<!-- コンテンツ -->
<div id="content">
<p class="title">投稿記事</p>

<?php if(have_posts()): while(have_posts()):
the_post(); ?>
	<?php get_template_part('content'); ?>
<?php endwhile; endif; ?>
<!-- /コンテンツ -->

次に、新たに『wp-content/themes/winroad theme』フォルダに『content.php』ファイルを作成し、下記のコードを入力します。

<div class="post">

<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>

</div>

ブラウザで確認してみます。初期設定では、記事は1件しか入力されていませんので、私の古い記事から3件ほど入力しています。

次に、記事のタイトル以外に、カテゴリー、本文、投稿年月日も表示するようにします。『content.php』ファイルを開き、タイトルの下に、下記のコードを入力します。

<p class="postinfo"><?php the_date(); ?></p>
<p class="postcat"><?php the_category(' '); ?></p>
<?php the_content(); ?>

それでは、ブラウザで確認してみます。

本日使用した関数の解説

have_posts()

この関数は、投稿があるとかどうかを判断する関数です。この関数には、パラメータがありません。戻り値は、出力すべき投稿や固定ページがあるかどうかを表す値になります(TRUE、FALSE)。

the_post()

この関数は、読み込まれた投稿や固定ページから1件が取り出され、必要な準備が行われて、データを出力できる状態になります。

get_template_part()

これは、WordPress3.0以降に追加された関数で、あるテンプレートをほかのテンプレートに組み込む関数です。この関数を使えば、任意のテンプレートを他のテンプレートに組み込むことができます。つまり、『home.php』のテンプレートに『content.php』というテンプレートを組み込むことを表します。また、2つ目のパラメータ(名前)も指定することができます。つまり、『スラッグ-名前.php』のテンプレートがあれば、それを組み込み、なければ『スラッグ.php』のテンプレートを組み込むことになります。
たとえば、『get_template_part(‘content’,’a’)』は、『content-a.php』テンプレートがあればそれを組み込み、なければ『content.php』ファイルを 組み込みます。

the_permalink()

個々の投稿のページには、アドレスが自動的に割り振られますが、その割り振られたアドレスを表示するためには、この関数(テンプレートタグ)を使います。この関数にはパラメータはありません。

the_title()

投稿(固定ページ)のタイトルを出力するための関数です。タイトルの前後に何らかの文字列(HTMLのタグなど)を出力するには、それらの文字列を『the_title』タグのパラメータとして指定します。たとえば、タイトルの前後を『<h2>』『</h2>』で囲む場合、『the_title(‘<h2>’,'</h2>’)』と書きます。
また、the_title関数を出力せずに、PHPプログラムの 中で使う場合は、第3パラメータに『false』を指定します。その際、1番目と2番目のパラメータに何も指定しなければ、それぞれ、『”』(空白)を指定します。つまり、次のように使用します。『$tilte=the_tile(”,”,false)』

the_date()

基本的に投稿日付を出力します。the_date関数は、4つのパラメータを指定することができます。1つ目のパラメータは、日時の初期を指定する文字列を指定します。指定しなければ、WordPressのダッシュボートの『設定』→『一般』→『日付フォーマット』の設定に従います。2つ目のパラメータでは、日付の前後に出力する文字列を指定します。4つ目のパラメータは結果をそのまま出力するか、戻り値として返すかを指定します。trueを指定すると、結果が出力され、falseをしてすると戻り値が返されます。

the_category()

カテゴリーの情報を出力します。パラメータを指定しない場合は、順番なしリスト(ul/li要素)で出力されます。1つ目のパラメータには、個々のカテゴリーを区切る文字(セパレータ)を指定することができます。この場合、カテゴリーの一覧はul/li要素では囲まれません。2つ目のパラメータには、『multiple』または『single』を指定します。『multiple』は、投稿が直接的に属するカテゴリーだけでなく、それらの上位カテゴリーへのリンクも出力されます。『single』は、投稿が直接的に属するカテゴリーとその親のカテゴリーの名前をセパレータで挟んで繋ぎ、その全体をリンクとします。3つ目のパラメータとして投稿のIDを指定すると、そのIDの投稿が属するカテゴリーが出力されます。

the_content()

投稿(固定ページ)の本文を出力する関数です。投稿の本文中に『<!–more–>』のコメントを入れると、その位置で本文の前半と後半に区切ることができます。たとえば、メインページなど複数の投稿が表示されるページでは、その後、『(続きを読む…)』のリンクが出力されます。『(続きを読む…)』の文字列を変更するには、the_content関数の1つめのパラメータに変更したい文字列を指定します。

本日は以上です。

タグ

このページの先頭へ