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

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

2015/11/12

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

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

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

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

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

WordPress公式マニュアル Codexでは、テンプレート階層の概観図が紹介されています。下図は最新(2015年11月10日時点)の概観図で、クリックすると拡大表示できます。
テンプレート階層概観図

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

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

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

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

いずれの方法にしても、あなたはブラウザを通じて
「URL:http://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」です。「ブログ投稿」の表示を要求されたWordPressは、まず優先順位・第1位の「single-post.php」を探します。でもテーマの中にないため、次に第2位の「single.php」を探し当てるのですね。

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

先ほどの例で、ページの種類ごとに使われるテンプレートファイルが異なる(*)ことを理解して頂けたでしょうか?

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

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

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

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

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

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

おすすめの書籍

小さなお店&会社の WordPress超入門

WordPressでビジネスサイトを作るために必要な、基本的な知識が理解できる“超”入門書。Web制作に必要なHTML・CSS・PHPなどの専門知識がなくても読み進められる1冊です。SEO(検索エンジン最適化)やセキュリティの対策についても解説されています。

おすすめのテーマ

WordPressテーマ「NEXTAGE (tcd021)」

WordPressテーマ「LAW」

コーポレートサイト(企業サイト)向けのテーマ。第一印象で信頼性や専門性を的確にアピールし、Webサイトのゴールである「お問い合わせ」まで自然に繋がっていく“導線”にこだわったテンプレートです。

カテゴリー

ビジネスサイトを作りたいあなたに

おすすめのテーマ、あります。