WP-PageNaviとquery_postsを連携する方法
WordPressでスタンダードに使われるページングプラグインWP-PageNavi。
WP-PageNaviとquery_postsを併用して、クエリの内容にposts_per_pageなどを入れるとWP-PageNaviが正しく機能しない場合があります。これはWP-PageNaviがquery_postsのクエリを無視し、基本設定を見にいってしまうために起こります。
そこで、WP-PageNaviとquery_postsを連携する方法はないかと。。
調べてみるとwp_pagenavi();にクエリを投げ入れられる引数がありました。
wp_pagenavi(array('query' => $my_query));
このような形式でクエリを入れてやるとページングがクエリ通りに機能するようになります。
具体的な使い方としては、query_postsを使わずに
if(have_posts()): $my_query = new WP_Query('cat=13&showposts=15'.'&paged='.$paged); while ( $my_query->have_posts() ) : $my_query->the_post();
というようにWP_Queryクラスを使ってクエリオブジェクトを生成しておきます。
そのあとに、ループ外でwp_pagenaviに配列で渡してやります。
wp_pagenavi(array('query' => $my_query));
参考