• 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細

このWikiはいつでも誰でも編集できます

「テンプレート階層」の版間の差分

提供: WordPress Codex 日本語版
移動先: 案内検索
(和訳+再構成(ノート参照))
(2 版)
(相違点なし)

2008年5月5日 (月) 01:44時点における版

テンプレートは WordPress サイトを生成するために使われるファイルです。WordPress v1.5 で「テーマ」機能が導入されて以来、テンプレートはますます構造化しやすくなり、たくさんのカスタマイズを盛り込んだテーマを作成できるようになっています。サイト内の全ページを同じデザインにすることも、メインページ・カテゴリ・検索結果といったページの種類ごとに別のテンプレートを設けて、デザインや表示内容を変えることもできます。

テンプレート階層とは、WordPress サイトの各ページを表示する際に WordPress がチェックする、テンプレートファイル名の優先順序です。これを利用して、特に作り込みたいページ(種別)のみ専用のテンプレートファイルを設け、その他のページは共通のテンプレートで生成させる、といったことができます。

このページは、次の問いに答えを出そうとするものです。

○○(ページ)を表示するとき、どのテンプレートファイルが使われるのか?

テーマを作成するには、ブログの各ページを表示するために WordPress がテンプレートファイルを選び出す仕組みを適切に理解しておくことが不可欠です。既存の WordPress テーマをカスタマイズしたい場合も、編集すべきテンプレートファイルを判断するのに役立ちます。

概観図

次の図は、WordPress テンプレート階層に基づいてウェブページを生成する際に呼ばれるテンプレートファイルを図解したものです。訪問者がアクセスする各種ページのクエリ文字列と、それに対応する条件タグ、そして、WordPress が探すテンプレートファイル名の順序を示しています。

WordPress テンプレート階層構造図 (英語版 Codex サイトにあります)

仕組み

訪問者が WordPress サイト上のページにアクセスしたとき、WordPress は次のように動きます。

  1. URI に含まれるクエリ文字列とクエリタイプを照合し、要求されているページの種類(メインページ、カテゴリページなど)を判断。
  2. 該当するページ種類のテンプレート階層に基づき、現在のテーマディレクトリ内からテンプレートファイルを探す。
  3. 最初に見つかったテンプレートファイルを用いて、要求されたページを生成。

例えば、ブログが http://example.com/wp/ にあり、訪問者が http://example.com/wp/category/apple/ という「りんご」カテゴリのアーカイブページにアクセスしたとしましょう。WordPress は、現在のテーマディレクトリの中からりんごカテゴリに使えるテンプレートファイルを探します。

カテゴリページのテンプレート階層は次のとおりです。WordPress はこのリストの上から順に、ファイルがないかどうか探していき、最初に見つけたファイルを使います。

  1. category-ID.php -- 特定のカテゴリ用テンプレート
  2. category.php -- カテゴリの汎用テンプレート
  3. archive.php -- 汎用アーカイブテンプレート(タグ・日別アーカイブなどと共用)
  4. index.php

りんごカテゴリの ID が '4' であれば、最初に category-4.php というテンプレートファイルを探します。ディレクトリ内にそのファイル名が存在しなければ、次に category.php を探し、それもなければ archive.php を探します。それもなければ、あらゆるページに使える基本のテーマテンプレートファイル index.php を使います。

index.php はテーマに必須ですが、他のテンプレートファイルを設けるか否かは、テーマの作成者が選べます。WordPress は、一致する名前のテンプレートファイルを見つけられなければそれを飛ばし、次の候補のファイル名を探してくれます。例えば、他のページと様式を変えたいのがカテゴリID 4 だけなのであれば、テーマディレクトリ内に置くテンプレートファイルは category-4.phpindex.php だけでいいのです。

備考: WordPress がページの種類(クエリタイプ)に合うテンプレートファイルを特定する方法は一つではありません。条件タグは表示しようとしているページの種類を判定できるので、その判定結果によってテンプレートファイルを切り替えたり、複数のページ種類で共通のテンプレートファイルを使い、そのページ内の表示の一部分だけをページ種類に応じて変える、というような細かい制御もできます。詳しくはテーマの作成および条件タグのページをご覧ください。

ページ種類別テンプレート階層

以下、表示するページの種類別に、WordPress に呼ばれるテンプレートファイルの順序を示します。各セクションの見出しが、冒頭の問い「○○(ページ)を表示するとき、どのテンプレートファイルが使われるのか?」の ○○ に当てはまります。

メインページ

  1. home.php
  2. index.php

単体記事ページ

  1. single.php
  2. index.php

WordPress ページ

  1. ページ作成・編集画面の「ページテンプレート」ドロップダウンメニューで選択したページテンプレート
  2. page.php
  3. index.php

注: この節は「WordPress ページ」についてであり、ブログの一般的な記事やウェブページではありません。

カテゴリページ

  1. category-ID.php -- 例えばカテゴリID 6 用のテンプレートであれば category-6.php
  2. category.php
  3. archive.php
  4. index.php

タグページ

  1. tag-タグスラッグ.php
  2. tag.php
  3. archive.php
  4. index.php

注: WordPress 2.3 以上でのみ使えます。

著者テンプレート

  1. author.php
  2. archive.php
  3. index.php

日付別ページ

例えば月別アーカイブページなど

  1. date.php
  2. archive.php
  3. index.php

検索結果ページ

  1. search.php
  2. index.php

404 (Not Found) ページ

  1. 404.php
  2. index.php

添付ファイルページ

記事本文への画像添付で 'Linked to Page' を選んだ場合に、画像のリンク先として使われるページ

  1. attachment.php
  2. index.php

変更履歴