[WordPress]固定ページのテンプレートが表示されない?記述ミス・階層・FSEの3点を確認する

WordPress
スポンサーリンク

「アップロードしたはずのカスタムテンプレートが出てこない…」

固定ページ制作の詰めでこれが起きると、地味に冷や汗が出ますよね。コードは合っているはずなのに、WordPressが認識してくれない。

今回は、フリーランス歴15年の私が現場で何度も遭遇してきた「テンプレート認識エラー」の原因と対処法を、2025年現在の最新仕様に合わせて解説します。


①必須のヘッダーコメント記述(Template Name)に誤字脱字はないか

基本中の基本ですが、最も多いのがこれ。Template Name: のスペルミスや、PHPコメントアウトの構文エラーです。

まずは page-sample.php などの冒頭にある記述を再確認しましょう。

チェックポイントは以下の通りです。

  • Template Name:のコロン(:)は半角になっているか?
  • スペースが全角になっていないか?
単純なタイポ(打ち間違い)で1時間を無駄にすること、意外とあるあるですよね。まずはここを見直してみてください。

②ファイルの設置場所が「テーマ直下」または「1階層下」にあるか

記述が合っているのに表示されない場合、疑うべきは「ファイルの設置場所(ディレクトリ階層)」です。

昔のWordPressは比較的どこに置いても読み込んでくれましたが、近年のバージョンではテーマのセキュリティや構造の厳格化により、スキャンされる階層が決まっています。


推奨される設置場所:

  • テーマのルートディレクトリ(/wp-content/themes/my-theme/ 直下)
  • サブディレクトリ(/wp-content/themes/my-theme/page-templates/ など)
もし深い階層に入れているなら、一度ルートディレクトリか、推奨される page-templates フォルダへ移動させてみてください。これでアッサリ認識されることが多々あります。

③クラシックテーマかブロックテーマ(FSE)かの仕様違いを疑う

2025年の今、最も注意したいのがこれです。あなたが触っているそのテーマは、従来の「クラシックテーマ」ですか? それとも「ブロックテーマ(FSE対応)」ですか?という点です。

もし theme.json を使用するブロックテーマの場合、PHPファイルで作ったカスタムテンプレートは、従来の「固定ページの属性」プルダウンではなく、エディター右側の「テンプレート」パネルから置換する形式になる場合があります。

また、ブロックテーマではPHPではなく、HTMLファイル(templates/page-custom.html)として作成する必要があるケースも。

  • クラシックテーマの場合: PHPファイルのヘッダーコメントで認識。
  • ブロックテーマの場合: theme.json への登録や、HTMLテンプレートとして作成が必要な場合あり。

④キャッシュクリアとデバッグモードでの検証

上記すべて問題ない場合、サーバー側のキャッシュや、WordPressの一時的な不具合が原因かもしれません。

  1. ブラウザとサーバーのキャッシュをクリアする。
  2. wp-config.php で WP_DEBUG を true にしてエラーが出ていないか見る。

特に、FTPでアップロードした直後はタイムラグで反映されないことも。「もしかして?」と思ったら、管理画面をスーパーリロード(Shift + F5)してみましょう。

最後に

テンプレートが認識されないトラブルは、コードそのものより「設置場所」や「テーマ仕様との不一致」が原因であることがほとんどです。

まずは、ファイルを page-templates フォルダに移動させてみることから始めてみましょう!

コメント

タイトルとURLをコピーしました