【WordPressテーマ】テンプレートファイルと階層の関係

WordPressテーマで使われるテンプレートファイルについて、ファイル階層の関係とともに説明する。

WordPressテーマを構成するテンプレートファイル

WordPressのテーマを構成するPHPファイルのことをテンプレートファイルを呼び、ページの種類やパーツごとにテンプレートファイルを使い分けて表示する。

テーマによっては多くのテンプレートファイルを利用するが、最小構成として

  • スタイルシートである「style.css
  • ホームを表示する「index.php

以上2つのテンプレートファイルさえあれば、オリジナルのWordPressテーマとして動作する。

テンプレートファイルが複数ある理由

style.css・index.phpといった最小構成でもWordPressテーマとして機能するにも関わらず、なぜ複数のテンプレートファイルがあるのだろう。

その最大の理由は、

テーマの管理・カスタマイズのしやすさ

といったことに背景がある。

OYAKUN
OYAKUN
テーマファイルが分かれていることで、不具合の修正もリカバリしやすくなります。

複数に分かれていることで個別にレイアウト変更できる

例として1つのPHPファイル(テンプレートファイル)だけでWordPressテーマを管理しようとすると、

  • home
  • 個別記事(投稿記事)
  • 固定ページ
  • ヘッダー
  • フッター

といったように、各要素がまとまった膨大なソースコードを修正・管理する必要がある

しかし、それぞれの要素ごとにテンプレートファイルが分かれていることで、任意のテンプレートファイルのみを編集すればカスタマイズが完了する。

template-sample
tamplate-sample

ただテンプレートファイルは、全て同じディレクトリ内で作成されても表示される優先順位が予め決まっている

テンプレート階層でテンプレートファイルの優先順位が決まる

WordPressでは、表示するページの種類ごとに使用されるテンプレートファイルが決められていてテーマフォルダ内にあるファイルから優先順位の高いものが表示される

この順序のことを、テンプレート階層と呼ぶ。

テンプレート階層の表示順は以下のとおり。

https://wphierarchy.com/

テンプレートファイル階層図は、

  • 左にいくほど優先順位が高く
  • 右にいくほど優先順位が低い

テンプレートファイルの構成を表している。

テンプレートファイルの優先順位略図

テンプレートファイルの優先順位について概略図を示す。

主なページの種類 テンプレートファイル
優先順位:高 優先順位:中 優先順位:低
ホームページ 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テンプレートタグとは

  • この記事を書いた人
  • 最新記事
oyakun

OYAKUN

40代3児のパパ。小企業のWeb担なんでも屋。趣味はジョギングとばどみんとん。はしゃぎすぎて骨折5回(左肘・両足首・鎖骨・右手首)経験済み。最近やっとウィスキー飲めるようになりました。