2026年5月20日

2026年5月20日

カスタムページテンプレートで404エラーが出る場合の解決方法

はじめに

WordPressで「このページだけ404になる」という場合、カスタムページテンプレートに問題がある可能性があります。特定の固定ページにカスタムテンプレートを割り当てている場合、テンプレートファイルの問題がそのページだけの404エラーを引き起こすことがあります。

症状・原因

カスタムページテンプレートが原因の404の特徴:

  • 特定の固定ページだけが404になる(他のページは正常)
  • テーマを切り替えると問題が解消する
  • テンプレートファイルを変更した後に404が発生した
  • 固定ページの編集画面で「テンプレート」のドロップダウンに存在しないテンプレートが選択されている

主な原因:

  • テンプレートファイルを削除・移動したが固定ページへの割り当ては残っている
  • テンプレートファイルのPHPコードにエラーがある
  • テンプレートファイルに必要なファイル(get_template_part()の対象など)がない

解決手順

ステップ1:問題のページのテンプレートを確認

1. WordPress管理画面でそのページの編集画面を開く

2. 右サイドバーの「テンプレート」ドロップダウンを確認

3. 割り当てられているテンプレートファイルが実際に存在するか確認

存在しないテンプレートが選択されていると「デフォルトテンプレート」に戻して保存します。

ステップ2:テンプレートファイルの存在を確認

FTPで/wp-content/themes/現在のテーマ/フォルダ内を確認します。

カスタムテンプレートは通常、ファイルの先頭に以下のコメントがあります:

<?php
/**
 * Template Name: カスタムページ名
 */

このファイルが存在しない場合、固定ページの「テンプレート」をデフォルトに変更してください。

ステップ3:テンプレートファイルのPHPエラーを確認

テンプレートに構文エラーがあると404になることがあります。wp-config.phpでデバッグモードを有効にします:

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

エラーは/wp-content/debug.logに記録されます。確認後は必ずWP_DEBUGfalseに戻してください。

ステップ4:デフォルトテーマに切り替えて確認

問題がテーマ固有のテンプレートによるものか確認するため、一時的にデフォルトテーマ(Twenty Twenty-Fourなど)に切り替えます:

1. 「外観」→「テーマ」でデフォルトテーマを有効化

2. 問題のページにアクセスして404が解消されるか確認

3. 解消された場合:元のテーマのテンプレートファイルに問題がある

ステップ5:page.phpやsingle.phpとの優先順位を確認

WordPressのテンプレート階層を理解することで原因を特定しやすくなります:

カスタムテンプレート(指定した場合)
  ↓ なければ
page-{slug}.php(スラッグ専用テンプレート)
  ↓ なければ
page-{ID}.php(ID専用テンプレート)
  ↓ なければ
page.php(全固定ページ共通)
  ↓ なければ
singular.php
  ↓ なければ
index.php

page.phpが存在しない場合でもWordPressはindex.phpにフォールバックします。しかし、テンプレート階層のいずれかで404のヘッダーを送信するコードがあると問題になります。

ステップ6:テンプレートで404を返すコードを削除

テンプレートに誤って次のようなコードが含まれている場合:

// ❌ 誤ったコード例(条件が合わない場合に404を返してしまう)
if (!is_user_logged_in()) {
    global $wp_query;
    $wp_query->set_404();
    status_header(404);
    get_template_part(404);
    exit();
}

このようなリダイレクト・404返却コードが不適切な場所にないか確認します。

テンプレート割り当てをリセットする(データベース)

WP-CLI(コマンドライン)が使える場合:

# 特定のページのテンプレート割り当てをリセット
wp post meta delete {POST_ID} _wp_page_template

まとめ

カスタムページテンプレートが原因の404エラーは、問題のページの「テンプレート」設定を「デフォルトテンプレート」に変更するか、テンプレートファイルのPHPエラーを修正することで解決できます。デフォルトテーマに切り替えて確認するのも有効な診断方法です。

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ