
WordPressでウェブサイトを見ていると、「トップページ」「ブログ記事一覧ページ」「個別の記事ページ」「固定ページ」「検索結果ページ」など、様々な種類のページがあります。
それぞれのページでレイアウトや表示される情報が少しずつ違いますよね?これは、WordPressがページのタイプに応じて**「どのテーマファイルを使って表示するか」**を決めるルールがあるからです。このルールこそが「テンプレート階層」と呼ばれているものです。
テンプレート階層を理解することは、WordPressテーマをカスタマイズしたり、特定のページだけデザインや表示内容を変更したりする上で非常に重要になります。この記事では、このテンプレート階層の仕組みを分かりやすく解説し、あなたのWordPressカスタマイズの幅を広げるお手伝いをします。
テンプレート階層の基本的な考え方
WordPressがページを表示する際、まず最初に**「このページはどんな種類のページか?」**を判断します。例えば、「これはIDが10番のブログ記事を表示するページだ」「これは『お知らせ』カテゴリの記事一覧ページだ」といった具合です。
次に、WordPressはテーマフォルダの中から、そのページのタイプに最もふさわしいテンプレートファイルを**特定の順番**で探していきます。最も具体的なファイルから探し始め、もし見つからなければ、より汎用的なファイルへと探し進めます。まるで滝のように、上流から下流へと順番にファイルを探していくイメージです。
最終的にどのファイルも見つからなかった場合、多くの場合 index.php
というファイルが使用されます。これが「フォールバック」(代替手段)と呼ばれるものです。ほとんどのテーマには index.php
が含まれているため、WordPressが完全に表示できなくなることは稀です。
この「特定の順番」がテンプレート階層の最も重要な部分です。
主要なテンプレートファイルとその役割
WordPressテーマに含まれる主なテンプレートファイルと、それぞれがどのタイプのページ表示に使われるかの基本的な役割を見ていきましょう。
index.php
: 全てのタイプのページの最終的なフォールバック。基本的にどのテーマにも含まれています。他の特定のテンプレートファイルが見つからなかった場合に使われます。ブログのトップページ(最新の投稿一覧)の表示にも使われることがあります(後述)。home.php
: サイトの**トップページ**で、「設定」→「表示設定」が「最新の投稿」になっている場合に使われます。front-page.php
: サイトの**トップページ**で、「設定」→「表示設定」が「固定ページ」になっている場合に使われます。home.php
より優先されます。single.php
: **個別の投稿(記事)ページ**を表示する際に使われます。page.php
: **固定ページ**を表示する際に使われます。singular.php
:single.php
とpage.php
の両方が存在しない場合のフォールバックとして、**単一の投稿または固定ページ**を表示する際に使われます(比較的新しいテンプレートファイル)。category.php
: **カテゴリのアーカイブページ**(特定のカテゴリに属する記事一覧ページ)を表示する際に使われます。tag.php
: **タグのアーカイブページ**(特定のタグが付いた記事一覧ページ)を表示する際に使われます。taxonomy.php
: **カスタムタクソノミー**(カスタム投稿タイプに紐づけられた独自の分類)のアーカイブページを表示する際に使われます。author.php
: **投稿者のアーカイブページ**(特定の投稿者が書いた記事一覧ページ)を表示する際に使われます。date.php
: **日付ベースのアーカイブページ**(特定の年、月、日、または期間に投稿された記事一覧ページ)を表示する際に使われます。archive.php
: 上記のcategory.php
,tag.php
,taxonomy.php
,author.php
,date.php
など、**様々なアーカイブページのフォールバック**として使われます。search.php
: **検索結果ページ**を表示する際に使われます。404.php
: 存在しないURLにアクセスされた場合の**404エラーページ**を表示する際に使われます。
これらの他に、ヘッダー (`header.php`)、フッター (`footer.php`)、サイドバー (`sidebar.php`) など、複数のテンプレートファイルから読み込まれて共通部分を構成するファイルもあります。これらは主に get_header()
, get_footer()
, get_sidebar()
といったテンプレートタグを使って呼び出されます。
具体的な探索の仕組み(例)
WordPressが実際にどのようにファイルを探していくかを、具体的な例で見てみましょう。
例1:IDが10番の投稿(ブログ記事)のページを表示する場合
WordPressは以下の順番でファイルを探します。
single-post-10.php
(特定の投稿タイプ ‘post’ で、IDが10の投稿専用のテンプレート)single-post.php
(投稿タイプ ‘post’ 全体に適用されるテンプレート)single.php
(全ての単一投稿に適用される汎用テンプレート)singular.php
(全ての単一投稿および固定ページに適用されるテンプレート)index.php
(最終的なフォールバック)
この例では、もしあなたのテーマフォルダに single.php
があれば、それが使われます。もし single.php
はなく、代わりに single-post.php
があれば、そちらが使われます。もし single-post-10.php
というファイルがあれば、それが最優先で使われるため、その投稿だけに適用される特別なデザインやレイアウトを実現できます。
例2:「お知らせ」(スラッグが ‘news’)カテゴリのアーカイブページを表示する場合
WordPressは以下の順番でファイルを探します。
category-news.php
(スラッグが ‘news’ のカテゴリ専用のテンプレート)category-ID.php
(IDが ‘news’ カテゴリのIDと同じテンプレート)category.php
(全てのカテゴリアーカイブに適用される汎用テンプレート)archive.php
(全てのアーカイブページのフォールバック)index.php
(最終的なフォールバック)
この場合も、最も具体的なファイル(category-news.php
や category-ID.php
)があればそれが優先され、なければより汎用的な category.php
や archive.php
、最終的には index.php
が使われます。
カスタム投稿タイプやカスタムタクソノミー、特定の固定ページにも、それぞれ固有のより具体的なテンプレートファイル名のルールがあります。これらの詳細なルールは、WordPress Developer Handbook のテンプレート階層のページなどで確認できます。
カスタマイズへの応用
テンプレート階層の仕組みを理解すると、WordPressテーマのカスタマイズが格段に自由になります。
- 特定のページのデザイン変更: 特定の投稿や固定ページ、カテゴリだけレイアウトや表示内容を変えたい場合、この階層に従って専用のテンプレートファイル(例:
single-slug.php
,page-ID.php
,category-slug.php
など)を作成し、親テーマの汎用的なテンプレートを上書きすることができます。 - 子テーマでのカスタマイズ: 子テーマでテンプレートファイルをカスタマイズする際も、この階層のルールを利用します。親テーマのファイルを子テーマフォルダの同じ階層にコピーし、それを編集することで、親テーマのアップデートの影響を受けずに表示を変更できます。WordPressはまず子テーマフォルダからファイルを探すため、子テーマにあるファイルが優先されます。
- テーマ開発: ゼロからテーマを作成する場合や、既存テーマを大きく改修する場合も、テンプレート階層に基づいて必要なファイルを作成・配置していきます。
最初は少し複雑に感じるかもしれませんが、「WordPressは、ページのタイプに応じて、特定の順番でテーマファイルを探しに行き、最初に見つけたものを使う」という基本を覚えておけば、多くのカスタマイズに対応できるようになります。
まとめ
WordPressのテンプレート階層は、サイト上の様々なページがどのように表示されるかを決定する重要な仕組みです。この「滝の流れ」のようなファイル探索ルールを理解することで、あなたは以下のことができるようになります。
- サイトの各部分がどのテーマファイルによって生成されているかを把握できる。
- 特定のページやコンテンツタイプ専用のデザインやレイアウトを適用できる。
- 親テーマのアップデートを気にせず、安全にテーマファイルをカスタマイズできる(子テーマの活用)。
最初は主要なテンプレートファイル(index.php
, single.php
, page.php
, archive.php
)からその役割を把握し、必要に応じて詳細な階層のルールを調べてみましょう。テンプレート階層の理解は、WordPressをより深く使いこなし、あなたの思い通りのサイトを構築するための強力な武器となるはずです。