Wordpressでカスタム投稿ページの一覧ページにページャーをつけたときに、2ページ目以降が404になってしまう件について、何度も遭遇しては同じように調べる。。を繰り返していたので、チェックすべき要点をメモします。
色んな条件が重なってエラーになってしまうので、ひとつひとつチェックしてみてください。
チェック項目
①管理画面の表示設定「1ページに表示する最大投稿数」と、function.php等のposts_per_pageの設定は揃っているか。
例えば、各ページで下記のような設定を行っている場合、すべての1pあたりの表示件数を揃える必要があります。
▾管理画面

▾functions.php
|
// 一覧画面の表示件数を変更 function change_posts_per_page($query) { if ( is_admin() || ! $query->is_main_query() ) return; if ( $query->is_archive('news') ) { //カスタム投稿タイプを指定 $query->set( 'posts_per_page', '10' ); //表示件数を指定 } } add_action( 'pre_get_posts', 'change_posts_per_page' ); |
▾archive.php
|
$paged = get_query_var('paged') ? get_query_var('paged') : 1; //pagedの設定 $args = array( 'post_type' => 'news', 'posts_per_page' => 10, 'paged' => $paged ); $my_query = new WP_Query($args); $max_num_pages = $my_query->max_num_pages; |
上記の場合、それぞれのファイルや管理画面の設定で「10件ずつ表示する」という設定を行っているのですが、この数字がずれていると、2ページ目以降でページが表示されないなどのバグが起こります。
②パーマリンクの設定は問題ないか
個人的にはカスタム投稿タイプを使うときは、「Custom Post Type Permalinks」というパーマリンク設定用のプラグインを使うことが多いですが、その際のパーマリンクを見直します。

上記の画像の場合
/%post_id%/
のように、「/」を必ず前後につけるようにします。
③パーマリンク設定ページの「変更を保存」を押下してみる
上記の設定系が問題ない場合は、ページャー箇所を実装した後にこのボタンを押下するだけで設定がリセットされ、404が治ることがあります。
今までの多くは、色々カスタムしたあとに404になることが多く、①をちゃんと見直すことで修正されることが多かったです。
ページャー404の沼にハマってしまった方は、是非確認してみてください。
Miki Kohinata
早稲田大学出身。学生時代、将来独立することを決めエンジニアの道へ。就職したIT企業で藤本と運命的に出会いKOHIMOTO設立。目指すのは人の心に寄り添えるエンジニア。人生のテーマソングはWeekend by 5lack。