WordPress初心者さんがまず覚えないと困るテンプレートタグBest5(+α) ※若干情報古め

WordPress初心者さんがまず覚えないと困るテンプレートタグBest5(+α) ※若干情報古め

2010年12月20日

解説3.投稿を表示される(ループ)



WordPressのキモ、投稿を表示させるには、「ループ」が存在しなくてはいけません。
4以降で紹介する、投稿を表示させるためのテンプレートタグだけを書いても、残念ながら投稿した記事や作成したページの中身を出力することは出来ません。

投稿表示用の記述はすべてこのループタグの中に書いてやる必要があります。

例えば、以下のようにコーディングした場合(かなり簡略化してますけど)、

<?php if(have_posts()): while(have_posts()): the_post(); ?>
 
<h2><?php the_title(); ?></h2>
<?php the_content(); ?>
 
<?php endwhile; endif; ?>

表示されるページは以下のような感じになります。

[html]

投稿した記事のタイトル

ここに投稿した本文が表示されます。画像がある場合は画像も出るよ。

[/html]

意味としては、

  1. if (have_posts() ) → 1つでも投稿記事があるかどうか判定
    true(投稿があった)だった場合、次へ進む。false(投稿なし)なら、ループ終了。
  2. while(have_posts()): the_post() → このwhileループで、投稿を表示。
  3. 投稿を1つ表示させたら(endwhileの前まで実行したら)、またwhile~の頭に戻って繰り返し実行。
    残っている投稿がなくなったら、ループ終了。

ちなみにこんな感じで2つの文に分けても同じことです。

<?php if(have_posts()): ?>
<?php while(have_posts()):the_post(); ?><?php endwhile; ?>
<?php endif; ?>

あとは、else文と組み合わせると色々できるけど、それは長くなるのでまた今度。

関連リンク

The Loop in Action – WordPress Codex 日本語版