WordPressのトップページなどで、カテゴリーごとに記事一覧を表示したい場合の書き方。以前から使っていたコードがquery_postsを使ったものだったので、get_postsを使ったコードをまとめておこうと思った次第。
get_postsを使って、カテゴリー別記事一覧を表示する
以下のソースは、カテゴリー別記事一覧を表示するもの。全カテゴリーを表示してしまうので、特定のカテゴリーだけにしたいとか特定のカテゴリーを除外したい場合は、工夫が必要(工夫はまだ)。
<div id="listArea">
<?php
$categories = get_categories();
foreach($categories as $category):
?>
<div class="listBox">
<h3><?php echo $category->cat_name; ?></h3>
<ul>>
<?php
$catposts = get_posts(array(
'category' => $category->cat_ID,
'posts_per_page' => 5 //取得する記事件数
));
foreach($catposts as $post):
setup_postdata($post);
?>
<li>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
</li>
<?php endforeach; wp_reset_postdata(); ?>
</ul><!-- listBox -->
<?php endforeach; ?>
</div><!-- listArea -->
ずっと使っていたquery_postsを使ったソース
category_name=hogeでカテゴリーを指定する。長くお世話になりました。
<div>
<?php query_posts('category_name=hoge&showposts=3');?>
<?php if(have_posts()):while(have_posts()):the_post();?>
<span class="date"><?php the_time('Y.m.d');?></span>
<span><a href="<?php the_permalink();?>"><?php the_title();?></a></span>
<?php endwhile;endif;?>
<?php wp_reset_query() ?>
</div>