「アップロードしたはずのカスタムテンプレートが出てこない…」
固定ページ制作の詰めでこれが起きると、地味に冷や汗が出ますよね。コードは合っているはずなのに、WordPressが認識してくれない。
今回は、フリーランス歴15年の私が現場で何度も遭遇してきた「テンプレート認識エラー」の原因と対処法を、2025年現在の最新仕様に合わせて解説します。
①必須のヘッダーコメント記述(Template Name)に誤字脱字はないか
基本中の基本ですが、最も多いのがこれ。Template Name: のスペルミスや、PHPコメントアウトの構文エラーです。まずは page-sample.php などの冒頭にある記述を再確認しましょう。
|
1 2 3 4 5 |
<?php /* Template Name: ランディングページ用 */ ?> |
チェックポイントは以下の通りです。
- Template Name:のコロン(:)は半角になっているか?
- スペースが全角になっていないか?
②ファイルの設置場所が「テーマ直下」または「1階層下」にあるか
記述が合っているのに表示されない場合、疑うべきは「ファイルの設置場所(ディレクトリ階層)」です。昔のWordPressは比較的どこに置いても読み込んでくれましたが、近年のバージョンではテーマのセキュリティや構造の厳格化により、スキャンされる階層が決まっています。
推奨される設置場所:
- テーマのルートディレクトリ(/wp-content/themes/my-theme/ 直下)
- サブディレクトリ(/wp-content/themes/my-theme/page-templates/ など)
③クラシックテーマかブロックテーマ(FSE)かの仕様違いを疑う
2025年の今、最も注意したいのがこれです。あなたが触っているそのテーマは、従来の「クラシックテーマ」ですか? それとも「ブロックテーマ(FSE対応)」ですか?という点です。もし theme.json を使用するブロックテーマの場合、PHPファイルで作ったカスタムテンプレートは、従来の「固定ページの属性」プルダウンではなく、エディター右側の「テンプレート」パネルから置換する形式になる場合があります。
また、ブロックテーマではPHPではなく、HTMLファイル(templates/page-custom.html)として作成する必要があるケースも。
- クラシックテーマの場合: PHPファイルのヘッダーコメントで認識。
- ブロックテーマの場合: theme.json への登録や、HTMLテンプレートとして作成が必要な場合あり。
④キャッシュクリアとデバッグモードでの検証
上記すべて問題ない場合、サーバー側のキャッシュや、WordPressの一時的な不具合が原因かもしれません。- ブラウザとサーバーのキャッシュをクリアする。
- wp-config.php で WP_DEBUG を true にしてエラーが出ていないか見る。
特に、FTPでアップロードした直後はタイムラグで反映されないことも。「もしかして?」と思ったら、管理画面をスーパーリロード(Shift + F5)してみましょう。
最後に
テンプレートが認識されないトラブルは、コードそのものより「設置場所」や「テーマ仕様との不一致」が原因であることがほとんどです。まずは、ファイルを page-templates フォルダに移動させてみることから始めてみましょう!


コメント