[WordPress]sidebar.php等で出力してる新着記事リストを、その記事が属しているカテゴリのものだけにする(※情報古いです)

2011年3月25日

※自分で考えたコードじゃなくて、公式フォーラムのスレッドのコピペであることをあらかじめ断っておきます。

※2012.10.27追記あり

ウィジェットではなくsidebar.phpに直書きで、「新着記事一覧」を表示させていました。
それを、「お知らせ」カテゴリーの記事を見てるときは「お知らせ」カテゴリーだけの新着5件を、
「日記」カテゴリーの記事を見ている時は「日記」カテゴリーだけの新着5件をさせるようにしたかったのです。

でも、sidebar-news.phpとかいちいち個別に作るのは面倒。

それで。
変更前

    <ul>
    <?php wp_get_archives('type=postbypost&limit=5'); ?>
    </ul>


変更後

	<ul>
	<?php
	foreach((get_the_category()) as $cat) {
	$cat_id = $cat->cat_ID ;
	break ;
	}
	$query = 'cat=' . $cat_id. '&showposts=5';
	query_posts($query) ;
	?>
	<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
	<li><a href="<?php the_permalink(); ?>"><?php the_title()?></a></li>
	<?php endwhile; endif; ?>
	<?php wp_reset_query(); ?> 
	</ul>

できた。

出典はコレ↓
WordPress › フォーラム » single.phpに同一カテゴリー記事一覧をナビゲーションとして表示したい。

※2012.10.27追記
サイドバーで使うなら、query_posts じゃなくて get_posts を使った方が良いです!!