基礎知識 2024.01.22

WordPressのテンプレート階層とは?優先順位のルールを徹底解説!

この記事を書いた人

土井 純也

WordPressスペシャリスト・エンジニア/株式会社e2e 取締役 / CTO

1985年北海道生まれ。
200社以上の大手上場企業のWordPressサイトの制作、保守・セキュリティをサポートしている。

【 展開しているサービス一覧 】
■WordPress開発サービス「wp.make
■WordPress保守/運用サービス「wp.support
■WordPressハッキング/緊急復旧対応サービス「wp.rescue
■WordPressバージョンアップ代行サービス「wp.versionup

WordPressのテンプレート階層(Template Hierarchy)は、アクセスがあった際にどのテンプレートファイルを適用するかを決めるルールです。これを理解していると、WordPressをカスタマイズする際に役立ちます。

本記事では、テンプレート階層の優先順位について簡潔に解説します。最後まで読むと、WordPressでテンプレートが選択される仕組みについて理解を深められます。

そもそもWordPressの「テンプレート」とは

WordPressのテンプレートとは、ページの表示方法を決める雛形となるPHPファイルのことです。

Webページのリクエストに対してWordPressはデータベースに保存されているコンテンツを取得し、テンプレートを使用して動的にWebページに生成します。その際に、決められた優先順位に基づき適切なテンプレートを選択してレイアウトを決定します。

テンプレートの仕組み

テンプレート階層の優先順位

テンプレート階層優先順位一覧

(出典:https://ja.wordpress.org/team/handbook/theme-development/basics/template-hierarchy/

WordPressでは複数のテンプレートファイルが存在しています。

サイトへのアクセスに応じてWebページを表示する際には、テンプレート群を上から検索して条件に合致したものを出力します。

この時、テンプレートが決定される優先順位のことをテンプレート階層と呼びます。原則的には、テンプレート階層は細かい指定が優先され、該当するものがなければひとつずつ順番に大きなテンプレートを検索して該当するテンプレートを探す、という処理を行います。

例として、投稿ページと固定ページの優先順位を見ていきましょう。この2つのページでテンプレートがどのように選ばれるのかが把握できると、他のページでもイメージしやすくなるでしょう。

投稿ページの場合

投稿ページの場合、まずWordPressはsingle-$posttype-$slug.phpに該当するファイルを探します。$posttypeと$slugは変数で、それぞれ投稿タイプ名とスラッグ名が入ります。

該当するテンプレートファイルがない場合、WordPressは次の優先順位にあたるファイルを順番に探していきます。

(例)投稿タイプがitem、スラッグがitem001の投稿記事の場合

  1. single-item-item001.php を探す 
  2. single-item.php を探す
  3. single.php を探す
  4. singular.php を探す
  5. index.php を探す

上記1〜4のテンプレートに該当するものがあれば、そのテンプレートを使用してページを表示します。1〜4で該当するテンプレートが見つからなかった場合、index.phpを使用してページを表示します。

優先順位 投稿ページ
1 single-$posttype-$slug.php
2 single-$posttype.php
3 single.php
4 singular.php
5 index.php

固定ページの場合

固定ページの場合、まずWordPressはカスタムテンプレートファイルを探します。該当するファイルがない場合、次の優先順位にあたるファイルを順番に探していきます。

カスタムテンプレートとは
カスタムテンプレートとは、レイアウトや配色などを自由にカスタマイズした独自のテンプレートを作成できる仕組みです。専用のテンプレートを用意して管理画面内で適用させることで、そのコンテンツに最適なレイアウトでページを表示できます。
作成したカスタムテンプレートを固定ページの管理画面メニューの「テンプレート」から選択可能

詳しくは以下のページで解説していますので、参考にしてください。

WordPressでテンプレートを作成して固定ページに適用する

(例)スラッグがrelease、ページIDが7の固定ページの場合

  1. カスタムテンプレートファイル を探す 
  2. page-release.php を探す 
  3. page-7.php を探す 
  4. page.php を探す
  5. singular.php を探す
  6. index.php を探す

上記1〜5で該当するテンプレートが見つからなかった場合、index.phpを使用してページを表示します。

優先順位 固定ページ
1 カスタムテンプレートファイル
2 page-$slug.php
3 page-$id.php
4 page.php
5 singular.php
6 index.php

もっとも優先度が低いindex.phpとは

テンプレート階層図の右端に配置されているのがindex.phpです。
つまり、どのテンプレート条件にも合致しない場合に適用されるもっとも優先度が低い(=汎用的な)テンプレートになります。

他のテンプレートファイルがあるため実際に適用される可能性は高くありません。しかし、不要だからといって削除してしまうとエラーになるため、そのまま残しておいてください。

【保存版】テンプレート階層チェック一覧

WordPressのテンプレート階層は、公式サイトの図を見て確認するのがもっとも良い方法です。しかし、慣れないうちは図だけで確認するのは時間がかかります。以下の早見表を活用すると、素早く優先順位を確認できます。

トップページ(Site Front Page)

トップページは、Webサイトのドメインへアクセスした際に表示されるページです。

優先順位 テンプレートファイル
1 front-page.php
2 home.php
3 index.php

投稿ページ(Single Post Page)

投稿ページは、WordPressの「投稿」で作成したページです。

優先順位 テンプレートファイル
1 single-$posttype-$slug.php
2 single-$postypet.php
3 single.php
4 singular.php
5 index.php

固定ページ(Static Page)

固定ページは、WordPressの「固定ページ」で作成したページです。

優先順位 テンプレートファイル
1 カスタムテンプレート
2 page-$slug.php
3 page-$id.php
4 page.php
5 singular.php
6 index.php

カテゴリー(Category Archive)

カテゴリーは、投稿記事をカテゴリーごとに分類した際の記事一覧ページです。

優先順位 テンプレートファイル
1 category-$slug.php
2 category-$id.php
3 category.php
4 archive.php
5 index.php
6

タグ表示(Tag Archive)

タグは、投稿に付与できる分類用のテキストのこと。タグごとの記事一覧が、タグ表示ページです。

優先順位 テンプレートファイル
1 tag-$slug.php
2 tag-$id.php
3 tag.php
4 archive.php
5 index.php

カスタムタクソノミー(Custom Taxonomy Archive)

カスタム分類ごとの記事一覧がカスタムタクソノミーページです。

優先順位 テンプレートファイル
1 taxonomy-$taxonomy-$teram.php
2 taxonomy-$taxsonomy.php
3 taxsonomy.php
4 archive.php
5 index.php

カスタム投稿表示(Custom Post Type Archive)

カスタム投稿は、投稿タイプをカスタマイズできる機能です。カスタム投稿ごとの記事一覧が、カスタム投稿表示ページです。

優先順位 テンプレートファイル
1 archive-$posttype.php
2 archive.php
3 index.php

作成者表示(Author Archive)

記事の作成者を表示するページが作成者表示ページです。

優先順位 テンプレートファイル
1 author-$nicename.php
2 author-$id.php
3 author.php
4 archive.php
5 index.php

日付表示(Date Archive)

日付別の記事一覧ページが日付表示ページです。

優先順位 テンプレートファイル
1 date.php
2 archive.php
3 index.php

404エラー(Error 404 Page)

404エラーは、リクエストしたページが存在しない場合、自動的に表示されるページです。

優先順位 テンプレートファイル
1 404.php
2 index.php

検索結果(Search Result Page)

検索結果を表示するのが検索結果ページです。

優先順位 テンプレートファイル
1 search.php
2 index.php

適用テンプレートが表示される便利なプラグイン「Show Current Template」

WordPressには、現在どのテンプレートが適用されているのかを表示してくれる便利なプラグイン「Show Current Template」があります。テンプレート階層を理解する際の助けになるため、一度導入して確認してみるのも良いでしょう。

「Show Current Template」は、インストールするだけで利用でき、特別な設定などは不要です。WordPressの管理画面から「プラグイン」→「新規プラグインを追加」を開き、キーワード欄にプラグイン名 (Show Current Template)を入力します。該当プラグインの「今すぐインストール」をクリックしてから「有効化」をクリックします。

Show Current Templateのインストール方法

プラグインを有効化した後、WordPressにログインした状態でページを表示します。上部メニューに「テンプレート」という項目が追加され、適用テンプレート名が表示されています。項目部分にカーソルを当てると、適用されているテンプレートの詳細情報が表示されます。

Show Current Templateでの適用中テンプレートの確認方法

なお、TwentyTwentyTwoやTwentyTwentyThreeなどのブロックテーマでは、従来のクラシックテーマとは異なりhtmlのテンプレートファイルを使用します。そのため、ブロックテーマを適用後に「Show Current Template」で確認すると、正しくテンプレート名が表示されないことに注意してください。

※テーマとしてTwentyTwentyThreeを適用した場合
Show Current Templateがブロックテーマでは正しく動作しない例

まとめ

WordPressのテンプレート階層の仕組みを理解できると、カスタマイズする際にどのテンプレートを編集すればよいのかがわかります。

プラグインなども活用しながら「このページにはこのテンプレートが適用されているぞ」ということを把握できると、後々役立ちます。
よく使用するページのテンプレートから徐々に覚えていくとスムーズです。

WordPressサイト制作・カスタマイズなら「wp.make」にお任せ!

WordPressでのサイト制作やリニューアルを検討する時、以下のようなお悩みはありませんか?

  • WordPressに詳しい制作会社に依頼したいが、どこがいいかわからない…
  • セキュリティ対策をしっかりしたいが、社内にノウハウがないのでプロに任せたい…
  • WordPressに最適なサーバーの選定や構築から依頼したい…
  • SEO対策や高速化も考慮したサイト構築を行なってほしい…
  • 制作後の保守・運用についてもサポートしてほしい…
  • 今のサイトを簡単に運用できるようにしてほしい…

「wp.make」は、WordPressのプロフェッショナル集団によるWordPressサイト制作・カスタマイズサービスです。
サイトの制作だけでなく、WordPressに最適なサーバーの選定や構築といったインフラ面の支援から、SEO対策や表示スピードの高速化、高度なセキュリティ対策や制作後の保守・運用サポートまで、WordPressに関わることならあらゆるお悩みを解消いたします。

既存のお客さまからも
「コミュニケーションが取りやすく、クオリティが高い」
「WordPressのプロとして信頼感がある」
と大変ご好評をいただいています。

WordPressサイトの制作・カスタマイズをご検討されているなら、ぜひ以下からお気軽にご相談ください。

>> wp.makeに無料相談する

WordPress開発・カスタマイズなら『wp.make』

wp.make

全案件WordPressのみ!
株式会社e2eの『wp.make』WordPress専門のWeb制作サービスです。

WordPress案件だけを扱っているから、技術・ノウハウ・対応力が圧倒的!

【WordPressサイト制作でよくあるお悩み】
・運用シーンが想定されておらず、更新しづらかった…
・打ち合わせで専門用語が多くてわかりづらい…
・制作後の保守には対応してくれなかった…


こんな事態になる前に、ぜひ一度、ご相談ください!
WordPressサイトを作るなら、一番WordPressに詳しいところへ!