WordPress(ワードプレス)のテンプレート階層について、初心者向けにわかりやすく解説します。
テンプレート階層は、以下に当てはまる人には必須の知識です。
- WordPressのテーマをカスタマイズしたい人
- WordPressのテーマを自作したい人
また、次に当てはまる場合は、テンプレート階層が影響しているかもしれません。
- テーマをカスタマイズした内容が反映されない
- トップページに固定ページを設定したのに変更されない
テンプレート階層については、主にテーマのカスタマイズや自作をしたい人が知っておくべきですが、WordPressのトップページを固定ページで作成・編集した人にも関係する場合があります。
こんにちは。この記事を書いた、かずよしといいます。2010年からWordPressを使っています。
この記事を書いた、かずよしです
ユーザー数のべ800万人超えの情報サイト「WordPress超初心者講座」を管理・運営する人。ワードプレスの始め方や使い方を、初心者向けにやさしく解説します。
テーマのカスタマイズや自作をしたい初心者の方へ
「好みのデザインテーマがなかなか見つからない……」とお悩みですか?
テーマのカスタマイズや自作にかかるのは、作業時間だけではありません
プログラミングなど、専門知識を得るための学習時間が膨大にかかります
僕も経験済みです
デザイン性や機能性が高い「SWELL」テーマを導入して
時間を買うことを強くおすすめします
WordPressのテンプレート階層とは
WordPressのテンプレート階層とは、テンプレートファイルが使われるときの優先順位のことです。
- テンプレートファイルって何?
- テンプレートファイルはどこにあるの?
- テンプレートファイルは何のために使うの?
こんな疑問を持たれたかもしれませんね。一つずつ見ていきましょう。
WordPressのテンプレートファイルとは
「テンプレート」という言葉には馴染みがあるのではないでしょうか。いわゆる「ひな形」ですね。
WordPressは、ページの種類ごとにテンプレート(ひな形)を使い分ける仕組みになっています。
例えば「投稿」と「固定ページ」とで、スタイルやレイアウトを変更できます。
このように、ページごとに用意されるテンプレートのことをテンプレートファイルといいます。WordPressのテーマの中には、様々なテンプレートファイルが含まれています。
WordPressがテンプレートファイルを使用する仕組み
WordPressは、ページの出力に使用するテンプレートファイルを次の手順で決定します。
- アクセスされたURLからページの種類を判別する
- ページの種類に応じて、優先順位の高いものから順にテンプレートファイルを探す
- 合致するテンプレートファイルが見つかるまで探し続ける
- 合致するテンプレートファイルが見つからなければ「index.php」を使用する
この説明だけではわかりにくいので、具体例をあげてみます。
テンプレート階層がよくわかる具体例
WordPressがテンプレートファイルを決定する仕組みを、具体例をまじえて解説します。
今あなたが見ているページのURLは、以下のアドレスです。
https://wp-exp.com/blog/template-hierarchy/
上記のURLから、WordPressは「このページは投稿で作成されている」と判断することができます。
投稿で作成されたページを表示する際、使われるテンプレートファイルの優先順位は次のように決まっています。これがテンプレート階層です。
- ($custom.php)
- single-post.php
- single.php
- singular.php
- index.php
当サイトでは「SWELL」というテーマを使っています。WordPressは、SWELLテーマの中から上記の順にテンプレートファイルを探します。
本記事執筆時点で、SWELLの中に含まれるテンプレートファイルは次のとおりです。
1. ($custom.php) | なし |
2. single-post.php | なし |
single.php | 3.あり |
4. singular.php | なし |
5. index.php | あり |
優先順位3番めの「single.php」と、5番目の「index.php」が含まれていました。本記事の出力には、より優先順位の高い「single.php」が使われているということです。
もし、上記STEP3でsingle.phpが存在しなければ、本記事の出力には「index.php」が使われることになります。
上記の例で紹介した「投稿」だけでなく、「固定ページ」「カテゴリーページ」などページの種類ごとに優先順位が決まっています。その優先順位をわかりやすくまとめたのが、テンプレート階層の外観図です。
テンプレート階層の外観図
WordPressの公式ページで、テンプレート階層の外観図が公開されています。WordPressテーマのテンプレート構造をひと目で確認できます。
上記公式ページは日本語で書かれていますが、外観図については英語版しか掲載されていませんでした。
外観図の中で、本記事で例にあげた「投稿」を示すのは、下図の赤枠部分です。
外観図で、投稿(Blog Post)から右に進むと次のように書かれていますね。
- ($custom.php)
- single-post.php
- single.php
- singular.php
- index.php
投稿を表示する際、WordPressは上記の順番でテンプレートファイルを探します。このように、外観図を活用するとページの種類ごとのテンプレート階層を確認することができます。
優先順位1番めの($custom.php)とは
「カスタムテンプレート」と呼ばれるテンプレートファイルを指します。以下の条件のとき、ページの出力にカスタムテンプレートが使用されます。
- テーマの中に、投稿用のカスタムテンプレートが用意されている
- 投稿編集画面のテンプレート選択で、上記のカスタムテンプレートを設定している
主なページのテンプレート階層
主なページの種類について、テンプレート階層を下記にまとめました。
投稿のテンプレート階層
外観図での表記:Blog Post
- ($custom.php)
- single-post.php
- single.php
- singular.php
- index.php
固定ページのテンプレート階層
外観図での表記:Static Page
- $custom.php
- page-$slug.php
- page-$id.php
- page.php
- singular.php
- index.php
カテゴリーページのテンプレート階層
外観図での表記:Category Archive
- category-$slug.php
- category-$id.php
- category.php
- archive.php
- index.php
タグページのテンプレート階層
外観図での表記:Tag Archive
- tag-$slug.php
- tag-$id.php
- tag.php
- archive.php
- index.php
トップページのテンプレート階層
外観図での表記:Site Front Page
- front-page.php
- home.php
- page.php
- index.php
検索結果ページのテンプレート階層
外観図での表記:Search Result Page
- search.php
- index.php
「$◯◯」は、固有の文字列を表しています。
- $custom は、先に説明した「カスタムテンプレート」のことです。
- $slug は、スラッグを表します。スラッグとは、ページやカテゴリーなどに設定できる文字列で、URLの末尾に使用されます。
- $id は、IDを表します。IDとは、ページやカテゴリーなどに対してWordPressが自動で割り当てる数値です。
WordPressのトップページを固定ページで作成・編集したのに変更が反映されない場合は、テンプレート階層が影響している可能性があります。
なぜなら、WordPress表示設定画面※の「ホームページの表示」で設定した内容に関わらず、テンプレート階層によって「front-page.php」が優先されるからです。
- 「表示設定画面」とは、WordPress管理画面メニューの設定>表示設定をクリックして開く画面のことです
詳しくは、別記事の「トップページが固定ページに変更されない」をお読みください。
テンプレート階層に関する最新の情報は、WordPress公式ページもあわせて確認してください。
テーマをカスタマイズするにはテンプレート階層の確認が不可欠
ページの種類ごとに使用されるテンプレートファイルには、優先順位があることがわかりました。
テーマをカスタマイズするには、以下の2つを意識することが大切です。
- どの種類のページを修正しようとしているのか?
- どのテンプレートファイルを編集すればいいのか?
編集すべきファイルを知るには、テンプレート階層を確認することが欠かせません。
まとめ
テンプレート階層とは、テンプレートファイルが使われるときの優先順位のことです。WordPressでは、ページの種類ごとにテンプレートファイル(ひな形)を使い分けることができます。
テンプレート階層は、WordPressの公式ページで公開されている外観図で確認できます。本記事では、主なページの種類についてテンプレート階層をまとめました。
WordPressのトップページを固定ページで作成・編集したのに変更が反映されない場合は、テンプレート階層が影響している可能性があります。
テーマのカスタマイズや自作をするには、テンプレート階層の確認が欠かせません。