テンプレート階層の基本とテーマのカスタマイズ

WordPressテーマカスタマイズするときに知っておきたいのが、テンプレート階層です。テンプレート階層とは、テンプレートファイルを出力する際の優先順位を指します。具体例をあげて解説します。

目次

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

WordPressのテンプレート階層を一言で表すと、「テンプレートファイルを出力する際の優先順位を定めたルール」です。

WordPressでは、表示を要求されたページのURLからページの種類を判断し、その種類に応じてどのテンプレートファイルを使うかを優先順位にしたがって決定します。この優先順位となるのがテンプレート階層です。

テンプレート階層を理解するための具体例

あなたが今ご覧になっているこのページ「テンプレート階層の基本とテーマのカスタマイズ」には、どうやってたどり着きましたか?

Yahoo!やGoogleの検索結果から来られたのでしょうか?それとも、このサイト内の別のページからですか?あるいは、ブックマークしていただいてたのでしょうか…?

いずれの方法にしても、あなたはブラウザを通じて
「URL:https://wp-exp.com/blog/template-hierarchy/を表示しなさい」
と要求をしている
ことになります。

その要求は、当サイトのコンテンツを管理するWordPressというシステムに伝わります。このときWordPressは、そのURLから「ページの種類」を判断します。

ページの種類とは
ページの種類には、ブログ投稿・固定ページ・アーカイブページ・検索結果ページなどがあります。その他にも“ページの種類”として定義されているものは、先ほど紹介した概観図背景が黒色のものが該当します。

具体例に話を戻しましょう。今ご覧のページ「テンプレート階層の基本とテーマのカスタマイズ」は、管理画面メニューの[投稿]>[新規投稿]で作成しています。つまり、“ページの種類”として定義されているもののうち、「ブログ投稿」に該当します。

テンプレート階層概観図-ブログ投稿

概観図で、「ブログ投稿」から右に進むと次のように書かれています。

  1. single-post.php
  2. single.php
  3. singular.php
  4. index.php

下図の赤枠で囲んでいる部分です。クリックすると拡大表示できます。

ブログ投稿-テンプレート階層

「ブログ投稿」の表示を要求されたWordPressは、この順番でテーマ内のテンプレートファイルを探します

もし、使用しているテーマ内に、上記4つのテンプレートファイルのうちindex.phpとsingle.phpとが存在する場合、投稿の表示には、より優先順位の高いsingle.phpの内容が出力されるのです。

テーマをカスタマイズするにはテンプレート階層を意識する

ここまで、ページの種類によって出力されるテンプレートファイルが異なることがわかりました。

なので、テーマをカスタマイズする場合は、どの種類のページを修正しようとしていて、かつ、どのテンプレートファイルを編集すればいいのかを知る必要がある。つまりテンプレート階層を意識する必要があるというわけです。

概観図からも分かるように、全てのページをindex.php(概観図の右端)1つだけで出力することもできます。しかし、多くのWordPressテーマでは、管理や編集をよりかんたんにするために複数のテンプレートファイルが含まれているのです。

テンプレートファイルの役割

テーマの中に含まれるテンプレートファイルは、レイアウト・デザイン・表示内容などをページの種類ごとに変更する役割があります。したがって、もしあなたが使っているテーマに大量のテンプレートファイルがあるとすれば、必ずしも全部必要というわけではありません

例えば、あなたのサイトに検索フォームを設置していないなら「search.php」は必要ありませんし、投稿にタグを全く設定していないなら「tag.php」は不要です。

テーマからテンプレートファイルを削除する際には、バックアップしておきましょう。

この記事が気に入ったら
フォローしてね!

この記事を書いた人

WordPress超初心者講座の運営者。
ワードプレスでブログ・サイトを作り始めて12年。アラフィフ。
今も年間330日くらい、WordPressを触っています。

Twitterはじめました。

目次