「投稿」として登録した記事のうち、特定のカテゴリの記事のみをリスト表示したいということがあります。
WordPress 3.0 以降では、「カスタム投稿タイプ」という機能を使うと、新着情報や商品情報のみをブログ記事(投稿)とは別のデータとして扱うことができますが、上記のようなケースもあったりします。
そのような場合は、WordPress で用意されている get_posts() を使って取り出すデータをカスタマイズします。
get_posts() を使ってデータを取得し表示するコードは、例えば以下のようになります。
<?php $posts = get_posts(array( 'posts_per_page' => 5, // 1ページあたりの取得件数 'category' => 3 // カテゴリID = 3 の記事のみを取り出す )); ?> <?php foreach ($posts as $post): setup_postdata($post); ?> <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2> <p><?php echo get_the_date(); ?></p> <?php the_content(); ?> <?php endforeach; ?>
注意する点としては、ループ処理の部分が
while (have_posts()): the_post();
ではなく、
foreach ($posts as $post): setup_postdata($post);
となっているところですね。 get_posts() の戻り値を使って foreach で繰り返し処理を行います。