Springfalfal

【WordPress】テンプレート階層マニュアル

テンプレート階層(Template Hierarchy)とは、WordPressがページを表示する際に、

「どのテンプレートファイル(PHPファイル)を優先して使用するか」

を決める自動ルールの仕組みです。

ユーザーがアクセスしたURL(トップページ、記事一覧、固定ページ、お問合わせ画面など)に応じて、

WordPressはあらかじめ決められた優先順位(階層)に従ってフォルダ内を上から順番に探し、

最初に見つかったPHPファイルを使って画面をレンダリングします。

既存のHTMLサイトをWordPress化する際、

画面ごとにどのファイルを作ればいいかを決める最も重要な設計図となります。

1. テンプレート階層の全体像(優先順位のルール)

WordPressは、アクセスされたページに対して「具体的で専門的なファイル」から順番に探し、

なければ徐々に「抽象的で汎用的なファイル」へと下っていきます。

そして、すべてのページの最終的な行き着く先(一番下)にあるのが index.php です。

代表的なページの階層ルート

よく使う主要なページの階層ルールを、優先順位が高い順にまとめました。

① フロントページ(サイトのトップ画面)

  1. front-page.php (設定に関わらず、トップページ最優先)
  2. home.php (ブログの投稿一覧ページ)
  3. index.php

② 固定ページ(会社概要、お問い合わせ、LPなど)

  1. page-{slug}.php (例:スラッグが about なら page-about.php が最優先)
  2. page-{id}.php (例:ページIDが 12 なら page-12.php)
  3. page.php (すべての固定ページの共通テンプレート)
  4. singular.php (単一ページ共通テンプレート)
  5. index.php

③ 投稿の個別記事ページ(ブログや通常のお知らせ記事)

  1. single-{post_type}-{slug}.php (カスタム投稿タイプかつ特定のスラッグ用)
  2. single-{post_type}.php (カスタム投稿タイプの記事用。例:single-news.php)
  3. single.php (通常の投稿の個別記事、またはカスタム投稿のフォールバック)
  4. singular.php
  5. index.php

④ カテゴリー・タグ・カスタムタクソノミー一覧ページ

  1. taxonomy-{taxonomy}-{term}.php (カスタムタクソノミーの特定のターム用)
  2. category-{slug}.php (例:ブログの「制作実績(works)」カテゴリー用なら category-works.php)
  3. category.php / tag.php / taxonomy.php (それぞれの共通一覧)
  4. archive.php (すべての一覧・アーカイブページの共通テンプレート)
  5. index.php

⑤ 404エラーページ(ページが見つからないとき)

  1. 404.php
  2. index.php

2. 主要テンプレートファイルの役割まとめ

HTMLサイトをテーマに落とし込む際、一般的に作成することが多い主要なファイルの一覧です。

ファイル名役割(どんなページで使われるか)
front-page.phpサイトのトップページ。 静的なメインビジュアルやセクションを並べることが多い。
home.php管理画面で「投稿ページ」に設定した、ブログ記事の一覧画面。
single.phpブログなどの投稿の「個別記事」詳細画面。
single-news.php「お知らせ(news)」などのカスタム投稿タイプ専用の個別記事詳細画面。
page.php会社概要やプライバシーポリシーなど、すべての固定ページの基本共通画面。
page-contact.phpスラッグが contact の固定ページ(お問合わせフォーム等)にのみ適用される画面。
archive.phpカテゴリー、タグ、日付、著者など、あらゆる「一覧(アーカイブ)」の共通画面。
search.phpサイト内検索を行った際の**「検索結果」画面。**
404.phpURLが間違っているときなどに表示される**「ページが見つかりません」画面。**
index.phpすべてのファイルの最終フォールバック。 上記の専門ファイルがない場合、これが代わりに使われます。

3. コーディング・開発における重要なポイント

ファイルは「必要な分だけ」作れば良い

すべてのファイルを用意する必要はありません。

例えば、カテゴリー一覧もタグ一覧も全く同じデザインで良い場合は、

category.php や tag.php は作らず、archive.php 1枚だけを作っておけば、WordPressが自動的にそれを使い回してくれます。

index.php は「最後の砦」として必ず残す

WordPressのテーマとして動作させるための絶対ルールとして、

どれだけ他の専門ファイル(front-page.php など)が揃っていても、

index.php という名前のファイルはフォルダ内に必ず存在していなければなりません。(中身は空でも、万が一のフォールバック用としてシステムに必須です)。

まとめ

サイトの規模が大きくなればなるほどテンプレート階層をしっかり意識して作成しなければなりません。

テンプレート階層が低いファイルをなるべく残しておくと、

後から数ページで使いまわしたいのに、共通して使えるファイルが作成できない

などのトラブルを回避できます。

小規模のサイトでも意識しておくと今後に役立つので、ぜひテンプレート階層を理解しておきましょう。

HTMLサイトのWordPress化基本マニュアルも用意していますので、こちらもぜひチェックしてください。

学習記録一覧へ