基礎知識 2024.01.09 2024.01.22
WordPressのテンプレート階層とは?優先順位のルールを徹底解説!
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の投稿記事の場合
- single-item-item001.php を探す
- single-item.php を探す
- single.php を探す
- singular.php を探す
- 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はカスタムテンプレートファイルを探します。該当するファイルがない場合、次の優先順位にあたるファイルを順番に探していきます。
カスタムテンプレートとは、レイアウトや配色などを自由にカスタマイズした独自のテンプレートを作成できる仕組みです。専用のテンプレートを用意して管理画面内で適用させることで、そのコンテンツに最適なレイアウトでページを表示できます。
詳しくは以下のページで解説していますので、参考にしてください。
(例)スラッグがrelease、ページIDが7の固定ページの場合
- カスタムテンプレートファイル を探す
- page-release.php を探す
- page-7.php を探す
- page.php を探す
- singular.php を探す
- 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)を入力します。該当プラグインの「今すぐインストール」をクリックしてから「有効化」をクリックします。
プラグインを有効化した後、WordPressにログインした状態でページを表示します。上部メニューに「テンプレート」という項目が追加され、適用テンプレート名が表示されています。項目部分にカーソルを当てると、適用されているテンプレートの詳細情報が表示されます。
なお、TwentyTwentyTwoやTwentyTwentyThreeなどのブロックテーマでは、従来のクラシックテーマとは異なりhtmlのテンプレートファイルを使用します。そのため、ブロックテーマを適用後に「Show Current Template」で確認すると、正しくテンプレート名が表示されないことに注意してください。
※テーマとしてTwentyTwentyThreeを適用した場合
まとめ
WordPressのテンプレート階層の仕組みを理解できると、カスタマイズする際にどのテンプレートを編集すればよいのかがわかります。
プラグインなども活用しながら「このページにはこのテンプレートが適用されているぞ」ということを把握できると、後々役立ちます。
よく使用するページのテンプレートから徐々に覚えていくとスムーズです。
WordPressサイト制作・カスタマイズなら「wp.make」にお任せ!
WordPressでのサイト制作やリニューアルを検討する時、以下のようなお悩みはありませんか?
- WordPressに詳しい制作会社に依頼したいが、どこがいいかわからない…
- セキュリティ対策をしっかりしたいが、社内にノウハウがないのでプロに任せたい…
- WordPressに最適なサーバーの選定や構築から依頼したい…
- SEO対策や高速化も考慮したサイト構築を行なってほしい…
- 制作後の保守・運用についてもサポートしてほしい…
- 今のサイトを簡単に運用できるようにしてほしい…
「wp.make」は、WordPressのプロフェッショナル集団によるWordPressサイト制作・カスタマイズサービスです。
サイトの制作だけでなく、WordPressに最適なサーバーの選定や構築といったインフラ面の支援から、SEO対策や表示スピードの高速化、高度なセキュリティ対策や制作後の保守・運用サポートまで、WordPressに関わることならあらゆるお悩みを解消いたします。
既存のお客さまからも
「コミュニケーションが取りやすく、クオリティが高い」
「WordPressのプロとして信頼感がある」
と大変ご好評をいただいています。
WordPressサイトの制作・カスタマイズをご検討されているなら、ぜひ以下からお気軽にご相談ください。
WordPress開発・カスタマイズなら『wp.make』
全案件WordPressのみ!
株式会社e2eの『wp.make』WordPress専門のWeb制作サービスです。
WordPress案件だけを扱っているから、技術・ノウハウ・対応力が圧倒的!
【WordPressサイト制作でよくあるお悩み】
・運用シーンが想定されておらず、更新しづらかった…
・打ち合わせで専門用語が多くてわかりづらい…
・制作後の保守には対応してくれなかった…
こんな事態になる前に、ぜひ一度、ご相談ください!
WordPressサイトを作るなら、一番WordPressに詳しいところへ!