query_postsを使ったカテゴリーの表示件数とページ送りのページ数がずれる
-
こんにちは。
query_postsを使って、カテゴリー毎に表示件数を変えようとして、ページ送りで行き詰ってしまいました…
こちらの質問 http://ja.forums.wordpress.org/topic/4310?replies=7
も見てみたのですが、少し違う…?ような気がしたので、改めて質問させて頂きます。どなたかアドバイス頂けないでしょうか?
【やりたい仕様】
各カテゴリーページ(アーカイブ?)の1ページあたりの表示件数を
・『カテゴリー1』…5件
・『カテゴリー2』…10件
として、<<前のページ 1 2 3 … 10 次のページ>>
のようなページネーションを表示したい。
【現状】
ソースはこう書きました。***category-01.php***
<?php query_posts($query_string . '&cat=カテゴリーID&posts_per_page=5'); ?> <?php if (have_posts()) : while (have_posts()) : the_post(); ?> <div class="article"> <?php the_content();?> </div> <?php endwhile; endif; ?> <?php wp_reset_query();?>
***category-02.php***
<?php query_posts($query_string . '&cat=カテゴリーID&posts_per_page=10'); ?> <?php if (have_posts()) : while (have_posts()) : the_post(); ?> <div class="article"> <?php the_content();?> </div> <?php endwhile; endif; ?> <?php wp_reset_query();?>
***ページネーション部分(カテゴリー1と2共通)***
<div class="pager"> <?php global $wp_rewrite; $paginate_base = get_pagenum_link(1); if (strpos($paginate_base, '?') || ! $wp_rewrite->using_permalinks()) { $paginate_format = ''; $paginate_base = add_query_arg('paged', '%#%'); } else { $paginate_format = (substr($paginate_base, -1 ,1) == '/' ? '' : '/') . user_trailingslashit('page/%#%/', 'paged');; $paginate_base .= '%_%'; } echo paginate_links( array( 'base' => $paginate_base, 'format' => $paginate_format, 'total' => $wp_query->max_num_pages, 'mid_size' => 5, 'current' => ($paged ? $paged : 1), )); ?> </div>
・カテゴリーページ1ページあたりの表示件数自体は、query_postsの指定の方が反映されている。
・ページ送り部分を表示させると、表示している件数とページ送りの数が合わない。
・ページ送り用のプラグインは使っていない。(Yuriko.Netさんのソースを拝借しました)記事数は各カテゴリー共に15件あるのですが、wordpress側の『表示設定』で1ページあたりの最大表示数をカテゴリー1に合わせて『5』にしてみたところ、
・カテゴリー1…5件表示 ページ数3
・カテゴリー2…10件表示 ページ数3
となってしまいます。
カテゴリー2は10件表示なので、分割数は2ページになってもらいたいのですが…
3ページ目はnot foundにはなりませんが、表示する記事が足りないので<?php the_content();?>の部分には何も表示されません。今の所、カテゴリー1も2もwordpressの表示設定と同じ表示件数にして対処していますが…上記のようなやりたい仕様を実現する為の知識が足りず、困り果てています。
どうかよろしくお願い致します。
- トピック「query_postsを使ったカテゴリーの表示件数とページ送りのページ数がずれる」には新たに返信することはできません。