[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(); ?>