[wp] query_postsで表示カテゴリを指定してもページ送りをしっかりと動作させる

query_postsのcatでカテゴリIDを指定して記事の一覧を取得している場合に、アーカイブやカテゴリーテンプレートでページ送り(ページネーション)プラグイン『wp_pagenavi』を使っていると、2ページ目以降も1ページ目と同じ記事が表示されることがある。

そんな時は、query_postsに$pagedをいれるとちゃんと動作するようになる。

<?php
query_posts($query_string);//他のquery_postsが継承されてしまう為、カテゴリ指定をデフォルトに戻す
query_posts('cat=1,2,3,4,5,7,8,10,11,12,13,14,16&paged='.$paged);//表示したいカテゴリIDを列挙
?>
<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post(); ?>


〜ループ内容〜


<?php endwhile; ?>
<?php else : ?>
<?php endif; ?>

<!-- ページ送り --> 
<div class="navigation">
<?php if(function_exists('wp_pagenavi')) { wp_pagenavi(); } ?>
</div>
<!-- /ページ送り --> 

<?php
//最後に「query_posts」をリセット
wp_reset_query();
?>

参考:http://ja.forums.wordpress.org/topic/127?replies=5

Similar posts