解説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]
意味としては、
- if (have_posts() ) → 1つでも投稿記事があるかどうか判定
true(投稿があった)だった場合、次へ進む。false(投稿なし)なら、ループ終了。 - while(have_posts()): the_post() → このwhileループで、投稿を表示。
- 投稿を1つ表示させたら(endwhileの前まで実行したら)、またwhile~の頭に戻って繰り返し実行。
残っている投稿がなくなったら、ループ終了。
ちなみにこんな感じで2つの文に分けても同じことです。
<?php if(have_posts()): ?> <?php while(have_posts()):the_post(); ?> … <?php endwhile; ?> <?php endif; ?>
あとは、else文と組み合わせると色々できるけど、それは長くなるのでまた今度。