WordPressのテンプレート階層とは?初心者向けにわかりやすく解説

WordPressワードプレス)のテンプレート階層について、初心者向けにわかりやすく解説します。

テンプレート階層は、以下に当てはまる人には必須の知識です。

  • WordPressのテーマをカスタマイズしたい人
  • WordPressのテーマを自作したい人

また、次に当てはまる場合は、テンプレート階層が影響しているかもしれません。

  • テーマをカスタマイズした内容が反映されない
  • トップページに固定ページを設定したのに変更されない

テンプレート階層については、主にテーマのカスタマイズや自作をしたい人が知っておくべきですが、WordPressのトップページを固定ページで作成・編集した人にも関係する場合があります。

こんにちは。この記事を書いた、かずよしといいます。2010年からWordPressを使っています。

この記事を書いた、かずよしです

ユーザー数のべ800万人超えの情報サイト「WordPress超初心者講座」を管理・運営する人。ワードプレスの始め方や使い方を、初心者向けにやさしく解説します。

目次

テーマのカスタマイズや自作をしたい初心者の方へ

「好みのデザインテーマがなかなか見つからない……」とお悩みですか?

テーマのカスタマイズや自作にかかるのは、作業時間だけではありません
プログラミングなど、専門知識を得るための学習時間が膨大にかかります

僕も経験済みです

デザイン性や機能性が高い「」テーマを導入して
時間を買うことを強くおすすめします

WordPressのテンプレート階層とは

WordPressのテンプレート階層とは、テンプレートファイルが使われるときの優先順位のことです。

  • テンプレートファイルって何?
  • テンプレートファイルはどこにあるの?
  • テンプレートファイルは何のために使うの?

こんな疑問を持たれたかもしれませんね。一つずつ見ていきましょう。

WordPressのテンプレートファイルとは

テンプレート」という言葉には馴染みがあるのではないでしょうか。いわゆる「ひな形」ですね。

WordPressは、ページの種類ごとにテンプレート(ひな形)を使い分ける仕組みになっています。

例えば「投稿」と「固定ページ」とで、スタイルやレイアウトを変更できます。

このように、ページごとに用意されるテンプレートのことをテンプレートファイルといいます。WordPressのテーマの中には、様々なテンプレートファイルが含まれています。

テーマ内に含まれるテンプレートファイルの例
当サイトで使っているテーマ「」の構成ファイル

WordPressがテンプレートファイルを使用する仕組み

WordPressは、ページの出力に使用するテンプレートファイルを次の手順で決定します。

  1. アクセスされたURLからページの種類を判別する
  2. ページの種類に応じて、優先順位の高いものから順にテンプレートファイルを探す
  3. 合致するテンプレートファイルが見つかるまで探し続ける
  4. 合致するテンプレートファイルが見つからなければ「index.php」を使用する

この説明だけではわかりにくいので、具体例をあげてみます。

テンプレート階層がよくわかる具体例

WordPressがテンプレートファイルを決定する仕組みを、具体例をまじえて解説します。

STEP
アクセスされたURLからページの種類を判別する

今あなたが見ているページのURLは、以下のアドレスです。

https://wp-exp.com/blog/template-hierarchy/

上記のURLから、WordPressは「このページは投稿で作成されている」と判断することができます。

STEP
優先順位の高いものから順にテンプレートファイルを探す

投稿で作成されたページを表示する際、使われるテンプレートファイルの優先順位は次のように決まっています。これがテンプレート階層です。

  1. ($custom.php)
  2. single-post.php
  3. single.php
  4. singular.php
  5. index.php

当サイトでは「」というテーマを使っています。WordPressは、SWELLテーマの中から上記の順にテンプレートファイルを探します。

STEP
合致するテンプレートファイルが見つかるまで探し続ける

本記事執筆時点で、SWELLの中に含まれるテンプレートファイルは次のとおりです。

1. ($custom.php)なし
2. single-post.phpなし
3. single.phpあり
4. singular.phpなし
5. index.phpあり

優先順位3番めの「single.php」と、5番目の「index.php」が含まれていました。本記事の出力には、より優先順位の高い「single.php」が使われているということです。

STEP
合致するテンプレートファイルが見つからなければ「index.php」を使用する

もし、上記STEP3でsingle.phpが存在しなければ、本記事の出力には「index.php」が使われることになります。

上記の例で紹介した「投稿」だけでなく、「固定ページ」「カテゴリーページ」などページの種類ごとに優先順位が決まっています。その優先順位をわかりやすくまとめたのが、テンプレート階層の外観図です。

テンプレート階層の外観図

WordPressの公式ページで、テンプレート階層の外観図が公開されています。WordPressテーマのテンプレート構造をひと目で確認できます。

テンプレート階層の概観図
テンプレート階層の外観図
出典元:テンプレート階層 – Japanese Team – WordPress.org 日本語

上記公式ページは日本語で書かれていますが、外観図については英語版しか掲載されていませんでした。

外観図の中で、本記事で例にあげた「投稿」を示すのは、下図の赤枠部分です。

テンプレート階層の外観図「投稿」
テンプレート階層の外観図「投稿」
出典元:テンプレート階層 – Japanese Team – WordPress.org 日本語
画像の一部を加工しています

外観図で、投稿(Blog Post)から右に進むと次のように書かれていますね。

  1. ($custom.php)
  2. single-post.php
  3. single.php
  4. singular.php
  5. index.php

投稿を表示する際、WordPressは上記の順番でテンプレートファイルを探します。このように、外観図を活用するとページの種類ごとのテンプレート階層を確認することができます。

優先順位1番めの($custom.php)とは

「カスタムテンプレート」と呼ばれるテンプレートファイルを指します。以下の条件のとき、ページの出力にカスタムテンプレートが使用されます。

  • テーマの中に、投稿用のカスタムテンプレートが用意されている
  • 投稿編集画面のテンプレート選択で、上記のカスタムテンプレートを設定している

主なページのテンプレート階層

主なページの種類について、テンプレート階層を下記にまとめました。

投稿のテンプレート階層

外観図での表記:Blog Post

  1. $custom.php)
  2. single-post.php
  3. single.php
  4. singular.php
  5. index.php

固定ページのテンプレート階層

外観図での表記:Static Page

  1. $custom.php
  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

タグページのテンプレート階層

外観図での表記:Tag Archive

  1. tag-$slug.php
  2. tag-$id.php
  3. tag.php
  4. archive.php
  5. index.php

トップページのテンプレート階層

外観図での表記:Site Front Page

  1. front-page.php
  2. home.php
  3. page.php
  4. index.php

検索結果ページのテンプレート階層

外観図での表記:Search Result Page

  1. search.php
  2. index.php

「$◯◯」は、固有の文字列を表しています。

  • $custom は、先に説明した「カスタムテンプレート」のことです。
  • $slug は、スラッグを表します。スラッグとは、ページやカテゴリーなどに設定できる文字列で、URLの末尾に使用されます。
  • $id は、IDを表します。IDとは、ページやカテゴリーなどに対してWordPressが自動で割り当てる数値です。

WordPressのトップページを固定ページで作成・編集したのに変更が反映されない場合は、テンプレート階層が影響している可能性があります。

なぜなら、WordPress表示設定画面の「ホームページの表示」で設定した内容に関わらず、テンプレート階層によって「front-page.php」が優先されるからです。

WordPress表示設定画面のホームページの表示設定
WordPress表示設定画面のホームページの表示設定
  • 「表示設定画面」とは、WordPress管理画面メニューの設定表示設定をクリックして開く画面のことです

詳しくは、別記事の「トップページが固定ページに変更されない」をお読みください。

テンプレート階層に関する最新の情報は、WordPress公式ページもあわせて確認してください。

テーマをカスタマイズするにはテンプレート階層の確認が不可欠

ページの種類ごとに使用されるテンプレートファイルには、優先順位があることがわかりました。

テーマをカスタマイズするには、以下の2つを意識することが大切です。

  • どの種類のページを修正しようとしているのか?
  • どのテンプレートファイルを編集すればいいのか?

編集すべきファイルを知るには、テンプレート階層を確認することが欠かせません。

まとめ

テンプレート階層とは、テンプレートファイルが使われるときの優先順位のことです。WordPressでは、ページの種類ごとにテンプレートファイル(ひな形)を使い分けることができます。

テンプレート階層は、WordPressの公式ページで公開されている外観図で確認できます。本記事では、主なページの種類についてテンプレート階層をまとめました。

WordPressのトップページを固定ページで作成・編集したのに変更が反映されない場合は、テンプレート階層が影響している可能性があります。

テーマのカスタマイズや自作をするには、テンプレート階層の確認が欠かせません。

おすすめ記事

目次