WordPressテンプレート階層とは?初心者向けに仕組みをわかりやすく解説

WordPressでテーマを編集していると、「index.php」「single.php」「page.php」「home.php」など、似たような名前のファイルがたくさん出てきます。

どのファイルを編集すればトップページが変わるのか、投稿ページはどのファイルで表示されているのか、固定ページはどこを触ればよいのか、最初はかなり分かりにくいです。

このときに理解しておきたいのが、WordPressの「テンプレート階層」です。

テンプレート階層を理解すると、WordPressがページごとにどのテンプレートファイルを読み込んでいるのかが分かります。テーマカスタマイズや子テーマ編集、オリジナルテーマ制作をするうえで必須の知識です。

WordPress公式ドキュメントでも、テンプレートはページ構造を生成する再利用可能なファイルであり、WordPressはURLの情報をもとに読み込むテンプレートを決定すると説明されています。

WordPressテンプレート階層とは

WordPressテンプレート階層とは、アクセスされたページに対して、どのテンプレートファイルを使って表示するかを決める優先順位のことです。

たとえば、ユーザーがブログ記事を開いた場合、WordPressはすぐに「single.phpを使う」と決めるわけではありません。

まず、より具体的なテンプレートファイルがあるかを探します。

たとえば、カスタム投稿タイプが product で、投稿スラッグが sample-item の場合、WordPressは次のような順番でテンプレートを探します。

  1. single-product-sample-item.php
  2. single-product.php
  3. single.php
  4. singular.php
  5. index.php

このように、より具体的なファイルから順番に探し、見つからなければ汎用的なファイルへ進んでいきます。

最後まで見つからない場合は、最終的に index.php が使われます。

テンプレート階層を理解するメリット

テンプレート階層を理解すると、WordPressのカスタマイズで迷いにくくなります。

たとえば、次のような判断ができるようになります。

  • トップページを変えたいなら front-page.php を確認する
  • ブログ一覧を変えたいなら home.php を確認する
  • 投稿ページを変えたいなら single.php を確認する
  • 固定ページを変えたいなら page.php を確認する
  • カテゴリー一覧を変えたいなら category.php を確認する
  • 検索結果を変えたいなら search.php を確認する
  • 404ページを変えたいなら 404.php を確認する

この判断ができるようになると、「どのファイルを編集すればよいか分からない」という状態から抜け出せます。

WordPressは具体的なテンプレートから探す

テンプレート階層の基本ルールは、具体的なテンプレートから汎用的なテンプレートへ探すことです。

たとえば、カテゴリー「news」の一覧ページを表示する場合、WordPressは次の順番でファイルを探します。

  1. category-news.php
  2. category-カテゴリーID.php
  3. category.php
  4. archive.php
  5. index.php

もし category-news.php があれば、そのカテゴリー専用のデザインにできます。

category-news.php がなければ category.php を使い、それもなければ archive.php、それもなければ index.php を使います。

この仕組みによって、WordPressでは「特定のページだけデザインを変える」「カテゴリーごとに表示を変える」「カスタム投稿タイプごとにレイアウトを分ける」といった柔軟なカスタマイズができます。

index.phpは最後の受け皿

WordPressテーマにおいて、index.phpは非常に重要です。

index.phpは、他に該当するテンプレートファイルが見つからなかった場合に使われる最終的なテンプレートです。

たとえば、single.phpがない、page.phpがない、archive.phpがない、search.phpがないという場合でも、index.phpがあればページを表示できます。

そのため、クラシックテーマでは index.php が基本の受け皿になります。

ただし、すべてを index.php だけで作ると、投稿ページ、固定ページ、一覧ページ、検索結果ページの区別がつきにくくなります。

実際のテーマ制作では、必要に応じて以下のようにファイルを分けるのが一般的です。

  • 投稿ページ:single.php
  • 固定ページ:page.php
  • 一覧ページ:archive.php
  • 検索結果:search.php
  • 404ページ:404.php
  • トップページ:front-page.php
  • ブログ一覧:home.php

クラシックテーマとブロックテーマの違い

WordPressには、大きく分けてクラシックテーマとブロックテーマがあります。

クラシックテーマでは、テンプレートファイルに .php を使います。

例:
single.php
page.php
archive.php
index.php

ブロックテーマでは、テンプレートファイルに .html を使います。

例:
single.html
page.html
archive.html
index.html

WordPress公式ドキュメントでも、クラシックテーマではPHPファイル、ブロックテーマではHTMLファイルを使用するが、テンプレート階層の考え方は同じと説明されています。

つまり、初心者はまず「どの種類のページで、どのテンプレートが優先されるのか」を理解することが大切です。

ファイル拡張子が .php か .html かは、使っているテーマの種類によって変わります。

テンプレート階層の基本ルール

WordPressテンプレート階層の基本は、次の3つです。

1つ目は、ページの種類によって使われるテンプレート候補が変わることです。

投稿ページなら single.php、固定ページなら page.php、カテゴリー一覧なら category.php というように、ページの種類ごとに候補が異なります。

2つ目は、具体的なファイルが優先されることです。

たとえば、category.php よりも category-news.php のほうが優先されます。これは「全カテゴリー共通のデザイン」よりも「newsカテゴリー専用のデザイン」のほうが具体的だからです。

3つ目は、最後は index.php にたどり着くことです。

どのテンプレートファイルも見つからなかった場合、WordPressは最終的に index.php を使います。

よく使うテンプレートファイル一覧

WordPressでよく使うテンプレートファイルは、次のとおりです。

  • index.php
    すべての最終的な受け皿になるテンプレートです。
  • front-page.php
    サイトのトップページに使われるテンプレートです。
  • home.php
    ブログ記事一覧ページに使われるテンプレートです。
  • single.php
    投稿の個別ページに使われるテンプレートです。
  • page.php
    固定ページに使われるテンプレートです。
  • archive.php
    カテゴリー、タグ、日付、投稿者などの一覧ページに使われる汎用テンプレートです。
  • category.php
    カテゴリー一覧ページに使われるテンプレートです。
  • tag.php
    タグ一覧ページに使われるテンプレートです。
  • search.php
    検索結果ページに使われるテンプレートです。
  • 404.php
    存在しないURLにアクセスされたときのエラーページに使われるテンプレートです。

初心者が最初に覚えるべきテンプレート

最初からすべてを覚える必要はありません。

初心者がまず覚えるべきテンプレートは、次の6つです。

  • index.php
  • front-page.php
  • home.php
  • single.php
  • page.php
  • archive.php

この6つを理解すれば、WordPressテーマの大まかな構造が分かります。

特に混乱しやすいのが front-page.php と home.php です。

  • front-page.php はサイトのトップページです。
  • home.php はブログ記事一覧ページです。

名前だけ見ると home.php がトップページのように感じますが、WordPressでは home.php は「ブログ記事一覧」を意味します。ここを間違えると、トップページを編集したいのにブログ一覧が変わってしまう、ということが起きます。

まとめ

WordPressテンプレート階層とは、WordPressが表示するページに応じて、どのテンプレートファイルを使うかを決める優先順位のことです。

基本の考え方は、具体的なテンプレートから探し、見つからなければ汎用的なテンプレートへ進むという流れです。

最終的には index.php が受け皿になります。

初心者はまず、front-page.php、home.php、single.php、page.php、archive.php、index.php の役割を理解しましょう。

この基本を押さえるだけで、WordPressテーマの編集や子テーマカスタマイズで迷うことがかなり減ります。