WordPressでWebサイトを構築する際、特定の固定ページだけ異なるレイアウトを適用したい場面は多々あります。
標準の固定ページテンプレートだけでは対応しきれない複雑なデザインや、独自のプログラムを組み込みたい場合に有効なのが「カスタムページテンプレート」の作成です。
2026年現在のWordPress環境においても、PHPベースのテンプレート管理は、柔軟なカスタマイズを実現するための重要なスキルとなっています。
本記事では、固定ページテンプレートを追加する具体的な手順から、WordPressがファイルを読み込む際の優先順位までを詳しく解説します。
固定ページテンプレートを追加する2つの主要な方法
WordPressで固定ページに独自のテンプレートを適用するには、主に2つの方法が存在します。
一つは、編集画面から任意で選択できる「カスタムページテンプレート」を作成する方法です。
もう一つは、特定のページスラッグやIDに基づいて自動的に適用される「専用テンプレート」を作成する方法です。
それぞれの方法にはメリットと用途の違いがあるため、プロジェクトの要件に合わせて使い分けることが重要です。
方法1:ファイルヘッダーでテンプレート名を定義する
最も汎用性が高いのが、ファイルの上部に特定のコメントを記述することで、テンプレートを選択可能にする方法です。
この方法で作成されたテンプレートは、WordPressの管理画面にある「固定ページの属性」セクションから、自由に選択できるようになります。
複数のページで同じレイアウトを使い回したい場合に非常に便利です。
方法2:ファイル名の命名規則を利用する
特定の固定ページに対して、自動的に専用のテンプレートを割り当てたい場合は、WordPressのテンプレート階層に従ったファイル名を作成します。
例えば、ページのスラッグが「contact」であれば、page-contact.phpというファイル名にするだけで、そのページにのみ反映されます。
管理画面で設定を行う手間が省け、特定のページ専用のロジックを記述する際に適しています。
カスタムページテンプレートの具体的な作成手順
それでは、実際にPHPファイルを作成してテンプレートを追加する手順を詳しく見ていきましょう。
まずは、現在使用しているテーマ(または子テーマ)のディレクトリ内に新しいPHPファイルを作成します。
ステップ1:PHPファイルの新規作成
テキストエディタを開き、新しいファイルを作成してpage-custom-template.phpなどの名前で保存してください。
ファイル名は任意ですが、WordPressの予約語と重ならないように注意が必要です。
ステップ2:テンプレートヘッダーの記述
作成したファイルの最上部に、以下のコードを記述します。
<?php
/**
* Template Name: カスタムレイアウト
* Description: 1カラムで表示するための独自テンプレートです。
*/
// ヘッダーを読み込む
get_header(); ?>
<main>
<h1><?php the_title(); ?></h1>
<div class="content">
<?php
if ( have_posts() ) :
while ( have_posts() ) : the_post();
the_content();
endwhile;
endif;
?>
</main>
<?php
// フッターを読み込む
get_footer(); ?>
ここで最も重要なのは「Template Name:」という記述です。
この記述があることで、WordPressは「これはカスタムテンプレートである」と認識し、管理画面に表示してくれます。
ステップ3:管理画面での適用
ファイルをサーバーにアップロードした後、WordPressの固定ページ編集画面を開きます。
右側の設定サイドバーにある「ページ」タブ内の「テンプレート」項目を確認してください。
先ほど指定した「カスタムレイアウト」という名前が選択肢に現れているはずです。
WordPressのテンプレート階層と優先順位
テンプレートを追加する際、どのファイルが優先的に読み込まれるのかを理解しておくことはトラブルを避けるために不可欠です。
WordPressは、固定ページを表示する際に以下の順番でファイルを探し、最初に見つかったものを適用します。
| 優先順位 | ファイル名のルール | 説明 |
|---|---|---|
| 1 | カスタムテンプレート | 管理画面で手動選択したテンプレート |
| 2 | page-{slug}.php | ページのスラッグ名を含むファイル |
| 3 | page-{id}.php | ページのID番号を含むファイル |
| 4 | page.php | 固定ページの標準テンプレート |
| 5 | singular.php | 個別投稿・固定ページ共通のテンプレート |
| 6 | index.php | 最終的に読み込まれる基本ファイル |
もし管理画面で「カスタムテンプレート」を選択している場合、それが他のすべての命名規則よりも最優先されます。
逆に、特定のページを自動で変更したい場合は、page-contact.phpのような命名規則を活用するのが最もスマートです。
テンプレート優先順位の確認コード
現在どのテンプレートファイルが使用されているかをデバッグしたい場合は、以下のコードをテーマのfunctions.phpに追加して確認することもできます。
// 現在使用中のテンプレートファイル名を管理バーに表示(管理者のみ)
add_action('admin_bar_menu', function($wp_admin_bar) {
if (!is_admin() && current_user_can('manage_options')) {
global $template;
$template_name = basename($template);
$wp_admin_bar->add_node([
'id' => 'template-name',
'title' => 'Template: ' . $template_name,
'meta' => ['class' => 'template-info']
]);
}
}, 999);
管理バーに「Template: page-custom-template.php」のように表示されます。
固定ページテンプレートを整理する際の注意点
テンプレートを増やす際、ファイルが散乱して管理が難しくなることがあります。
WordPress 4.7以降では、テーマディレクトリ内のサブディレクトリにテンプレートファイルを配置することが可能になりました。
例えば、page-templates/というフォルダを作成し、その中にカスタムテンプレートをまとめて保管することで、ルートディレクトリを綺麗に保つことができます。
また、テンプレートを追加した際は、必ず「子テーマ」を使用するようにしてください。
親テーマを直接編集すると、テーマのアップデート時に追加したテンプレートファイルが削除されてしまうリスクがあります。
フルサイト編集(FSE)におけるテンプレートの扱い
2026年現在のモダンなWordPressテーマ(ブロックテーマ)では、PHPファイルを使わずにサイトエディター上でテンプレートを作成することも増えています。
しかし、高度な動的処理や外部APIとの連携、独自のデータベースクエリを実行する場合、依然としてPHPによるテンプレート追加が最も確実な手法です。
ブロックテーマを使用している場合でも、patternsやpartsと組み合わせてPHPテンプレートを活用するハイブリッドな手法が推奨されます。
まとめ
WordPressで固定ページテンプレートを追加する方法を理解すれば、サイトのデザインや機能の幅を飛躍的に広げることができます。
まずは「Template Name」を記述するカスタムテンプレート形式から試し、必要に応じてスラッグ名を利用した自動適用を活用してみましょう。
テンプレート階層の優先順位を常に意識することで、予期せぬ表示崩れや設定ミスを防ぐことができます。
適切なディレクトリ構造を保ち、子テーマを活用しながら、運用のしやすい効率的なサイト制作を目指してください。
