category.phpにそのカテゴリーの全投稿だけを表示したいとき【改訂】

2015年10月9日

category.php(カテゴリーのインデックス)にそのカテゴリーの全投稿を表示したくて、
ネットによくある以下のTips

  1. <?php if ( have_posts() ) : query_posts(‘posts_per_page=-1’); ?>
  2. <?php if ( have_posts() ) : query_posts($query_string.’&posts_per_page=-1′); ?>

どっちを書いても、カテゴリーを無視して全部表示されてしまいます。(ムカ~!!)

以下のように書くと希望通りにそのカテゴリーの投稿を全件表示してくれました。
普通は 2 のほうで書けば上手くまわるはずなのですが、その前で別の処理をしていると上手くいかない場合があるので、同じ経験をされている方はお試しください。

毎度ネットに頼って失敗ばっかりするので、自分の備忘録として。

<?php $category = get_category($cat);
$cat_id = $category->cat_ID ;

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array(
'posts_per_page' => -1,
'cat' => $cat_id,
'paged' => $paged );
query_posts($args);
?>

<?php if (have_posts()) : ?>

<?php while (have_posts()) : the_post(); ?>
・
・
・
<?php endwhile; ?>

<?php endif; wp_reset_query(); ?>

※ 2015/12/10 改訂

ページトップへ