最初のページと他のページでは、ページごとに異なる数の投稿が必要です。
たとえば、これは私が必要なものです
- 合計投稿数:6
- 最初のページ:3つの投稿を表示
- 次のページ:ページごとに2つの投稿を表示
これが私のコードです:
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$fp_limit = 3; // first page limit
$limit = 2; // following page limit
$offset = 0; // default offset
if( $paged == 1 ) {
$limit = $fp_limit;
} else {
$offset = $fp_limit + ( ($paged - 2) * $limit );
}
$args = array(
'post_type' => 'my_post_type',
'post_status' => 'publish',
'offset' => $offset,
'posts_per_page' => $limit,
'caller_ get_ posts' => -1, // remove sticky post
'paged' => $paged,
'tax_query' => array(
array(
'taxonomy' => 'my_taxo',
'field' => 'slug',
'terms' => array('slug1', 'slug2', 'slug3')
)
)
);
$my_query = null;
$my_query = new WP_Query($args);
// basic loop
if( $my_query->have_posts() ) :
while ($my_query->have_posts()) : $my_query->the_post();
...
endwhile; endif; // archive loop
if (function_exists('wp_pagenavi')){ wp_pagenavi( array( 'query' => $my_query ) ); }
wp_reset_query();
アーカイブの最初のページでは、このコードは次のことを前提としています。
まあ、合計6つの投稿と1ページあたり3つの投稿。だから私は2つのアーカイブページが必要です、そしてあなたに提示するページネーションは次のとおりです:
[1] [2]
ただし、アーカイブ内の他のページでは、コードは次のことを前提としています。
さて、合計6投稿と1ページあたり2投稿。だから私は3つのアーカイブページが必要です、そしてあなたに提示するページネーションは次のとおりです:
[1] [2] [3]
これを修正するには少し助けが必要です。
'caller_ get_ posts'
はスペースが含まれており、無効です。第二に、それは非推奨です。ignore_sticky_posts
代わりに使用してください。