サポート » テーマ » カスタム投稿一覧のページ分割で2ページ以降が表示されない

  • 解決済 yuki

    (@yuki84yuki)


    カスタム投稿一覧を表示するページにページネーションを作成ました。
    投稿数は現在6件で、1ページの表示件数2件の設定なので、3ページに分割されるはずですが、
    3ページ目へのリンクが出力されず、直接/page/3/にアクセスするとNot Foundになってしまいます。
    どこに原因があるのでしょうか?

    <?php
    $args = array(
    		'post_type'=>'event',
    		'posts_per_page' => 2,
    		'post_status' => 'publish',
    		'caller_get_posts' => 1,
    		'meta_key'=>'event_date',
    		'order' => 'DESC',
    		'orderby'=>'meta_value',
    		'paged' => $paged,
    	 );
    $postslist = get_posts( $args );
    foreach ( $postslist as $post ) : setup_postdata( $post );
    echo '<h1>'.get_the_title().'</h1>';
    echo '<p><a href="'.get_the_permalink().'">詳細ページ</a></p>';
    endforeach;
    wp_reset_postdata();
    ?>
    
    <?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,
      'type'  => 'list', //ul liで出力
      'mid_size' => 1, //カレントページの前後
      'end_size' => 0,
      'current' => ($paged ? $paged : 1),
      'prev_text' => '<',
      'next_text' => '>',
      ));
    ?>

    追記です。
    WordPress管理画面の表示設定件数を変更すると
    その件数が反映されました。
    この件数はカスタム投稿含め全ての投稿で共通なのでしょうか?

    • このトピックはyukiが7年前に変更しました。
1件の返信を表示中 - 1 - 1件目 (全1件中)
  • msio

    (@msio)

    global $wp_rewrite;
    こちらでグローバルルールを定義しているところでカスタム投稿抽出要項を上書きされてはいませんか?

    ページングは、各変数に意図した数値がはいっているでしょうか。
    var_dump などで中に入っている数値を確認されてはいかがでしょうか。
    $paged はクエリなどで生成したページングカウント取得でご利用ではないですか?
    URLに指定したページ数値を取得するのは $page をお使いでしょうか。

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • トピック「カスタム投稿一覧のページ分割で2ページ以降が表示されない」には新たに返信することはできません。