WordPressテーマで使われるテンプレートファイルについて、ファイル階層の関係とともに説明する。
WordPressテーマを構成するテンプレートファイル
WordPressのテーマを構成するPHPファイルのことをテンプレートファイルを呼び、ページの種類やパーツごとにテンプレートファイルを使い分けて表示する。
テーマによっては多くのテンプレートファイルを利用するが、最小構成として
- スタイルシートである「style.css」
- ホームを表示する「index.php」
以上2つのテンプレートファイルさえあれば、オリジナルのWordPressテーマとして動作する。
テンプレートファイルが複数ある理由
style.css・index.phpといった最小構成でもWordPressテーマとして機能するにも関わらず、なぜ複数のテンプレートファイルがあるのだろう。
その最大の理由は、
テーマの管理・カスタマイズのしやすさ
といったことに背景がある。
複数に分かれていることで個別にレイアウト変更できる
例として1つのPHPファイル(テンプレートファイル)だけでWordPressテーマを管理しようとすると、
- home
- 個別記事(投稿記事)
- 固定ページ
- ヘッダー
- フッター
といったように、各要素がまとまった膨大なソースコードを修正・管理する必要がある。
しかし、それぞれの要素ごとにテンプレートファイルが分かれていることで、任意のテンプレートファイルのみを編集すればカスタマイズが完了する。
ただテンプレートファイルは、全て同じディレクトリ内で作成されても表示される優先順位が予め決まっている。
テンプレート階層でテンプレートファイルの優先順位が決まる
WordPressでは、表示するページの種類ごとに使用されるテンプレートファイルが決められていて、テーマフォルダ内にあるファイルから優先順位の高いものが表示される。
この順序のことを、テンプレート階層と呼ぶ。
テンプレート階層の表示順は以下のとおり。
テンプレートファイル階層図は、
- 左にいくほど優先順位が高く
- 右にいくほど優先順位が低い
テンプレートファイルの構成を表している。
テンプレートファイルの優先順位略図
テンプレートファイルの優先順位について概略図を示す。
主なページの種類 | テンプレートファイル | ||
---|---|---|---|
優先順位:高 | 優先順位:中 | 優先順位:低 | |
ホームページ | front-page.php | home.php | index.php |
個別記事ページ | single.php | singular.php | index.php |
固定ページ | page.php | singular.php | index.php |
カテゴリーページ | category.php | archive.php | index.php |
上記から分かるように、
- index.phpの表示順位は一番低く
- ページ種でphpファイルの優先順位は違う
といったことが分かる。
関連記事:WordPressテンプレートタグとは