1つのページの中でカテゴリーごとに記事を一覧表示したり、そのそれぞれで表示件数を個別に指定したいときに使える方法。ブログのトップページなどで使うケースが多いのではないでしょうか。ループ処理にて条件を指定します。
ループ処理の基本形
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>
<div class="post"><?php the_content(); ?></div>
<?php endwhile; ?>
<?php else: ?>
<h2>記事がありません</h2>
<?php endif; ?>
上のループ処理は、
- 記事があれば…
- タイトルを<h2>タグで囲んで表示
- 本文を「post」というクラス名の付いた<div>タグで囲んで表示
- この処理を記事がある分だけ繰り返す
- ループ終わり
- 記事がなければ…
- 「記事がありません」という文字列を<h2>タグで囲んで表示
- ループ終わり
という意味です。
このループ処理の開始タグの前に1行追加し「どんな記事を探してくるか?」などの条件を付加してやることで、表示件数を指定したり、特定のカテゴリーのみを抽出して一覧表示できるようになります。
以下にいくつかサンプル的なものを挙げておきますので、あなたの場合に当てはめて書き換えてみてください。
ループ処理でいろいろな指定をしてみる
カテゴリーIDが1の記事を表示する
<?php query_posts('cat=1'); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
記事を10個表示する
<?php query_posts('posts_per_page=10'); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
カテゴリーIDが1,3,5の記事を表示する
<?php query_posts('cat=1,3,5'); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
カテゴリーIDが1の記事を10個表示する
<?php query_posts('cat=1&posts_per_page=10'); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
カテゴリーIDが1,3,5の記事を10個表示する
<?php query_posts('cat=1,3,5&posts_per_page=10'); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
カテゴリーIDが1,3,5以外の記事を表示する
<?php query_posts('cat=-1,-3,-5'); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
カテゴリーIDが1,3,5以外の記事を10個表示する
<?php query_posts('cat=-1,-3,-5&posts_per_page=10'); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
まとめ
以上、ループ処理で記事の表示件数やカテゴリーを指定する方法でした。
この辺を押さえておけばいろんな記事一覧ページを作れるようになるかと思います。
それでは!