• 解決済 momonuts

    (@momonuts)


    投稿一覧ページ内にページ送りをつけたいと思っております。
    今まで、2ページ目から404エラーになるという現象は経験した事があるのですが、2ページまでは正常で3ページ目から404エラーになる現象が起こり原因が分からず困っております。

    カテゴリーごとのphp(category-00.php)を作り、記事取得部分は

    <?php query_posts( array(
    ‘post_type’ => ‘post’,
    ‘cat’ => ‘カテゴリーID’,
    ‘posts_per_page’ => 5,
    ‘paged’ => $paged
    )); ?>
    <?php if ( have_posts() ) : ?>
    <?php ?>
    <?php while ( have_posts() ) : the_post(); ?>
    表示内容
    <?php endwhile; endif; ?>

    とし、ページ送りは

    <div class=”pagenavis”>
    <?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’ => 6,
    ‘current’ => ($paged ? $paged : 1),
    ‘prev_text’ => ‘<i class=”fa fa-arrow-left” aria-hidden=”true”></i> 前へ ‘,
    ‘next_text’ => ‘ 次へ <i class=”fa fa-arrow-right” aria-hidden=”true”></i>’,
    )); ?>
    </div>

    としています。

    ページ送り部分の記述に問題があるのかな、と漠然と思うのですが何が悪いのか検討がつきません….

    お知恵をお貸しいただければ幸いです。
    よろしくお願いいたしますm(_ _)m

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • 自分のブログの記事ですが、 https://torounit.com/blog/2013/02/14/1470/ 参考になるかと思います。

    query_posts はテンプレート上で使うことを意図して居らず、使った場合このような問題を発生が発生します。

    pre_get_posts フックを使ってクエリーを変更するのが良いかと思います。

    トピック投稿者 momonuts

    (@momonuts)

    Toro_Unit様
    アドバイスありがとうございます!
    アドバイスをもとに試行錯誤したのですが、どうもうまくいかずで…

    ‘posts_per_page’ => 5,

    の記述を削除したところ、エラーが出なくなりました。
    今回は、1ページに表示する件数にこだわりはないので、上記消した形で
    解決としようと思います。

    ありがとうございました!

    • この返信は6年、 10ヶ月前にmomonutsが編集しました。
2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「3ページ目から404エラーが起こる」には新たに返信することはできません。