WordPressサイトで独自の404エラーページを作成することで、ユーザーエクスペリエンスを向上させ、ブランドの一貫性を保つことができます。この記事では、プラグインを使用せずに子テーマをカスタマイズして独自の404ページを作成する方法を解説します。
この記事でわかること
- 子テーマに
404.phpを作成する安全な方法 - 親テーマを直接編集してはいけない理由
- 404ページのデザインをカスタマイズする方法
404.phpテンプレートファイルの確認
WordPressテーマには、404エラーページを表示するための 404.php というテンプレートファイルがあります。親テーマ(例:Cocoon本体)には既に用意されていますが、直接編集してはいけません。
子テーマに404.phpを作成する(重要)
親テーマのファイルを直接編集しない
親テーマ(
ファイルの配置場所:
親テーマ(
cocoon-masterなど)のファイルを直接編集すると、テーマのアップデート時に変更内容がすべて消えてしまいます。必ず子テーマ(cocoon-child-master)側に404.phpを作成してください。子テーマに同名のファイルを置くと、WordPressのテンプレート階層の仕組みにより親テーマ側の同名ファイルより優先して読み込まれます(自動的に上書きされ、親テーマ側は変更不要です)。ファイルの配置場所:
/wp-content/themes/cocoon-child-master/404.php404.phpファイルのカスタマイズ
子テーマに 404.php を作成し、以下のコードを追加します。
cocoon-child-master/404.php:独自の404ページ
<?php get_header(); ?>
<div id="primary" class="content-area">
<main id="main" class="site-main" role="main">
<section class="error-404 not-found">
<header class="page-header">
<h1 class="page-title"><?php _e( 'ページが見つかりません', 'cocoon-child-master' ); ?></h1>
</header>
<div class="page-content">
<p><?php _e( 'お探しのページは削除されたか、移動した可能性があります。', 'cocoon-child-master' ); ?></p>
<p><a href="<?php echo esc_url( home_url( '/' ) ); ?>"><?php _e( 'ホームページに戻る', 'cocoon-child-master' ); ?></a></p>
</div>
</section>
</main>
</div>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
このコードを使って、ページが見つからない場合のメッセージやナビゲーションリンクを設定します。
CSSでスタイリング
次に、404.php の見た目を整えるために、子テーマのCSSファイル(style.css)にスタイルを追加します。
cocoon-child-master/style.css:404ページのスタイル
.error-404 {
text-align: center;
padding: 50px;
}
.error-404 .page-title {
font-size: 2em;
color: #ff0000;
}
.error-404 .page-content {
font-size: 1.2em;
color: #333;
}
関連する404ページのカスタマイズ
404ページに検索キーワードを提案する機能を追加すると、離脱防止にさらに効果的です。詳しくは404ページで検索キーワードを提案する機能を追加する方法で解説しています。
よくある質問(FAQ)
QWordPressの404ページをカスタマイズするには?
A子テーマ(cocoon-child-master)に404.phpファイルを作成するだけでカスタマイズできます。子テーマに配置することで、親テーマの404.phpより優先して読み込まれます。
Q404ページにサイト内検索フォームを表示するには?
A404.phpに
get_search_form()を呼び出すだけで検索フォームが表示されます。よく見られる記事やカテゴリーリストも合わせて表示するとユーザーの離脱を防げます。Q特定のURLパターンに対してカスタム404ページを表示するには?
A
template_redirectフックでis_404()を確認し、条件に応じて別のテンプレートを読み込む処理を追加します。通常の404.phpのカスタマイズだけで対応できないケースで使います。まとめ
- 必ず子テーマに配置:
cocoon-child-master/404.php - 避ける:親テーマ(cocoon-master)の直接編集(アップデートで消える)
- 仕上げ:CSSでデザインを整え、検索フォームや関連記事も表示するとより親切
プラグインを使用せずに独自の404ページを作成することで、ユーザーにより良い体験を提供し、ブランドの一貫性を保つことができます。
