「ブログの2ページ目が見つかりません」WordPress固定ページあるあるをfunctions.php 1行で解決した事例

「ブログの2ページ目以降が、ページが見つかりませんでしたって出ちゃうんです」
先日コーディングをさせていただいたサイトのご担当者様から、こんなご連絡をいただきました。
確認すると、たしかに /blog/page/2/ を開くと「404 Not Found」
これ、WordPressで「固定ページにブログ一覧を表示」している構成だと、けっこうあるあるな現象なんですよね。
仕様を知らないと「設定どこ?」って一瞬迷うやつ。逆に知っていれば、functions.php に1行足して数分で直ります。
- 何が原因なのか
- どう直すのか(コード付きでご案内)
- なぜ直すと動くのか
- カテゴリーアーカイブには影響しないのか
今まさに同じ状況で困っている方の参考になれば嬉しいです。
ブログの2ページ目以降が「ページが見つかりませんでした」とのご相談
ご相談内容を整理するとこんな感じでした。
- 対象サイト
注文住宅事業者様のWordPressサイト - 現象
/blog/トップは正常表示、でも/blog/page/2/以降が全部404 - 構成
固定ページ「ブログ」にテンプレートで投稿一覧を表示 - カテゴリーアーカイブ(
/blog/housing/page/2/等)は正常に動いている
こんた「ブログを更新するたびに記事が増えていくのに、2ページ目に進めない」というのは、読者にとって地味にストレスですよね。
せっかく書いた過去記事に到達できない=資産化されないという意味でも、放置はおすすめできません!
原因は、WordPressコアが固定ページの paged ルートを自動生成しない仕様
調べてみたら、これはWordPressコアの仕様でした。
WordPressは、
- 投稿アーカイブ(
/category/xxx/、/tag/xxx/、/author/xxx/など)→ paged ルート(/page/N/)を自動生成する - 固定ページ(
/about/、/blog/など) → paged ルートを自動生成しない
つまり、固定ページに投稿一覧を出力するテンプレートを当てていても、/blog/page/2/ というURL自体をWPが認識してくれないんですよね。
カテゴリーアーカイブ(/blog/housing/page/2/)が正常に動いていたのは、こちらは投稿アーカイブ側のルートで処理されていたから。
同じ /blog/ から始まっているので、ぱっと見「カテゴリーは動くのに固定ページは動かない、なんで?」と混乱するパターンです。
パーマリンク設定の「カテゴリーベース=blog」の影響でもなく、SWELL等のテーマ依存でもなく、WordPress本体の仕様なので、設定画面をいくら探しても出てきません。
functions.php に add_rewrite_rule を1行追加で解決
子テーマの functions.php 末尾に、以下のリライトルールを追加します。
コード(最小構成)
add_action( 'init', function() {
add_rewrite_rule(
'^blog/page/([0-9]+)/?$',
'index.php?pagename=blog&paged=$matches[1]',
'top'
);
} );やっていることをご案内すると、
^blog/page/([0-9]+)/?$で/blog/page/2/、/blog/page/3/…というURLパターンを捕捉pagename=blog&paged=2のクエリに変換してWordPressに渡す'top'で他のリライトルールより優先(カテゴリーアーカイブ側のルートを邪魔しない)
これだけです。テンプレートファイルの修正は不要、プラグイン追加も不要。
反映の手順
functions.phpを更新してアップロード- WordPress管理画面の「設定 → パーマリンク設定」を開く
- 何も変更せずに「変更を保存」ボタンを押す
3番目の「保存ボタンを押すだけ」が大切です。
これでリライトルールが再生成されて、追加したルールが有効になります。コード変更だけだと反映されないので、ここを忘れると「直したのに直ってない!」になります。
全URLで200を確認・検証
修正後、以下を実機で確認しました。
/blog/page/2/〜/blog/page/16/(最終ページまで全て)→ 200 OK- title に「ページ番号」が正しく付与
- body class に
paged paged-2等が付与(CSSで2ページ目以降の装飾も使える) - カテゴリーアーカイブ(
/blog/housing/page/2/等)→ 影響なし・正常 - トップ(
/)、固定ページ(/works/)等 → 影響なし・正常
カテゴリーアーカイブが壊れていないか、というのが今回の最大の懸念ポイントでした。'top' で優先したぶん、他のルートを潰してしまう可能性もゼロではないので。
実機検証で「他に何も影響していない」を確認できたところで、ご担当者様に完了報告です。
「仕様を知っているか」が現場対応スピードを決める
今回の対応、原因特定から修正完了まで1時間かかっていません。
でも、この仕様を知らないまま「設定画面のどこかに切り替えがあるはず」と探し始めたら、半日溶けてもおかしくない案件です。
WordPressって、「便利な仕様」と「便利すぎて固定ページには適用されない仕様」が混在していて、地味な落とし穴がけっこうあります。固定ページに投稿一覧を当てる構成は実は珍しくないので、同じ罠にハマっている方、けっこういるんじゃないかなと思います。
「仕様を知っているかどうか」で詰まる時間がぜんぜん違う。
だからこそ、こうやって事例として残しておくことに意味があるんですよね。
ちゃんと届くようにする。これが私の軸なので、現場で見つけた小さな知見も、同じところで困っている方に届けばと思って公開しました。
診断などもお気軽にご相談ください
今回の症状、心当たりある方は一度ご自身のサイトの /blog/page/2/(または /news/page/2/ など、固定ページに投稿一覧を載せているURL)を開いて、表示されるか確認してみてくださいね。
以下のような方は、お気軽にご相談ください!
- 固定ページに投稿一覧を載せている構成で、ページ送りが効かない
- functions.php を触るのが不安・触り方がわからない
- WordPressの「仕様の落とし穴」全般、相談できる人が欲しい
- 月々の保守の中で、こういう小さな不具合をサクッと直してほしい
💬 WordPressの不具合対応・保守、ご相談はお気軽に
こんたホームページ製作所では、不具合対応の単発相談から、月額保守でのご対応まで、各種承っております。「これ、自分で触るの怖い」「業者に頼むほどでもない気がする」という規模感のお困りごとも、まずはサクッとご相談ください。










