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

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

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

提供: WordPress Codex 日本語版
移動先: 案内検索
(リンク編集、3.0 に伴って要情報追加のためテンプレート・カテゴリー修正)
(86533版に更新、和訳完了。3.0 の新規テンプレート情報を追加。)
10行目: 10行目:
 
=== このドキュメンテーションの目的 ===
 
=== このドキュメンテーションの目的 ===
  
このドキュメンテーションは、次の質問に答えてくれるでしょう。
+
このドキュメンテーションは、次の疑問に答えてくれるでしょう。
  
 
<blockquote id="question">
 
<blockquote id="question">
45行目: 45行目:
 
訪問者が WordPress サイト上のページにアクセスしたとき、WordPress は次のように動きます。
 
訪問者が WordPress サイト上のページにアクセスしたとき、WordPress は次のように動きます。
  
# URI に含まれる[[用語集#Query_string|クエリ文字列]]とクエリタイプを照合し、要求されているページの種類(メインページ、カテゴリページなど)を判断。
+
# URI に含まれる[[用語集#Query_string|クエリ文字列]]とクエリタイプを照合し、要求されているページの種類(メインページ、カテゴリーページなど)を判断。
 
# 該当するページ種類の[[#ページ種類別テンプレート階層|テンプレート階層]]に基づき、現在のテーマディレクトリ内からテンプレートファイルを探す。
 
# 該当するページ種類の[[#ページ種類別テンプレート階層|テンプレート階層]]に基づき、現在のテーマディレクトリ内からテンプレートファイルを探す。
 
# 最初に見つかったテンプレートファイルを用いて、要求されたページを生成。
 
# 最初に見つかったテンプレートファイルを用いて、要求されたページを生成。
  
例えば、ブログが <code><nowiki>http://example.com/wp/</nowiki></code> にあり、訪問者が <code><nowiki>http://example.com/wp/category/apple/</nowiki></code> という「りんご」カテゴリのアーカイブページにアクセスしたとしましょう。WordPress は、現在のテーマディレクトリの中からりんごカテゴリに使えるテンプレートファイルを探します。
+
例えば、ブログが <code><nowiki>http://example.com/wp/</nowiki></code> にあり、訪問者が <code><nowiki>http://example.com/wp/category/apple/</nowiki></code> という「りんご」カテゴリーのアーカイブページにアクセスしたとしましょう。WordPress は、現在のテーマディレクトリの中から「りんご」カテゴリーに使えるテンプレートファイルを探します。
  
[[#Category page|カテゴリページのテンプレート階層]]は次のとおりです。WordPress はこのリストの'''上から順に'''、ファイルがないかどうか探していき、'''最初に'''見つけたファイルを使います。
+
[[#Category page|カテゴリーページのテンプレート階層]]は次のとおりです。WordPress はこのリストの'''上から順に'''、ファイルがないかどうか探していき、'''最初に'''見つけたファイルを使います。
 
<blockquote>
 
<blockquote>
# category-''slug''.php -- 特定のカテゴリ用テンプレート
+
# category-''slug''.php -- 特定のカテゴリー用テンプレート
# category-''ID''.php -- 特定のカテゴリ用テンプレート
+
# category-''ID''.php -- 特定のカテゴリー用テンプレート
# category.php -- カテゴリの汎用テンプレート
+
# category.php -- カテゴリーの汎用テンプレート
 
# archive.php -- 汎用アーカイブテンプレート(タグ・日別アーカイブなどと共用)
 
# archive.php -- 汎用アーカイブテンプレート(タグ・日別アーカイブなどと共用)
 
# index.php
 
# index.php
 
</blockquote>
 
</blockquote>
りんごカテゴリのスラッグが <code>'apple'</code> だった場合、WordPress はまず <code>category-''apple''.php</code> というテンプレートファイルを探します。テーマディレクトリ内にこのファイルがない場合、ID が4とすれば、<code>category-''4''.php</code> を探します。これも見つからなければさらに <code>category.php</code>、次に <code>archive.php</code> を探します。それもなければ、あらゆるページに使える基本のテーマテンプレートファイル <code>index.php</code> を使います。
+
「りんご」カテゴリーのスラッグが <code>'apple'</code> だった場合、WordPress はまず <code>category-''apple''.php</code> というテンプレートファイルを探します。テーマディレクトリ内にこのファイルがない場合、ID が4とすれば、<code>category-''4''.php</code> を探します。これも見つからなければさらに <code>category.php</code>、次に <code>archive.php</code> を探します。それもなければ、あらゆるページに使える基本のテーマテンプレートファイル <code>index.php</code> を使います。
  
<code>index.php</code> はテーマに必須ですが、テーマの作成者は他のテンプレートファイルを含めるかどうかを選べます。WordPress は 一致する名前のテンプレートファイルが見つからなければそれをスキップして次の候補のファイル名を探してくれます。例えば、他のページと違った表示にしたいのがカテゴリID 4 だけなら、テーマディレクトリ内に置くテンプレートファイルは <code>category-4.php</code> と <code>index.php</code> のみでいいのです。
+
<code>index.php</code> はテーマに必須ですが、テーマの作成者は他のテンプレートファイルを含めるかどうかを選べます。WordPress は 一致する名前のテンプレートファイルが見つからなければそれをスキップして次の候補のファイル名を探してくれます。例えば、他のページと違った表示にしたいのがカテゴリーID 4 だけなら、テーマディレクトリ内に置くテンプレートファイルは <code>category-4.php</code> と <code>index.php</code> のみでいいのです。
  
 
<div id="Using Conditional Tags">
 
<div id="Using Conditional Tags">
73行目: 73行目:
 
</div>
 
</div>
  
以下、表示するページの種類別に、WordPress に呼ばれるテンプレートファイルの順序を示します。各セクションの見出しが、冒頭の質問「''ある種類のページを表示するとき、どのテンプレートファイルが使われるのか?''」の、「ある種類のページ」に当てはまります。
+
以下、表示するページの種類別に、WordPress に呼ばれるテンプレートファイルの順序を示します。各セクションの見出しが、冒頭の問い「''ある種類のページを表示するとき、どのテンプレートファイルが使われるのか?''」の、「ある種類のページ」に当てはまります。
  
<div id="The_Main_page">
+
<div id="Home_Page_display">
=== メインページ ===
+
=== ホームページ表示 ===
 
</div>
 
</div>
  
84行目: 84行目:
 
# index.php
 
# index.php
  
<div id="Single_Post_page">
+
<div id="Single_Post_display">
=== 単体記事ページ ===
+
=== 個別投稿表示 ===
 
</div>
 
</div>
  
 +
#single-{post_type}.php - [[関数リファレンス/register_post_type|投稿タイプ]] が <code>videos</code> の場合は single-videos.php ([[Version 3.0|バージョン 3.0]] 以降)
 
# single.php
 
# single.php
 
# index.php
 
# index.php
  
<div id="WordPress_Page">
+
<div id="Page_display">
=== 固定ページ ===
+
=== 固定ページ表示 ===
 
</div>
 
</div>
  
[[Pages#Page Templates|ページテンプレート]]:
+
[[Pages|固定ページ]]:
# [[Pages Add New SubPanel|ページ作成画面]]の「ページテンプレート」ドロップダウンメニューで選択したファイル名
+
# カスタムテンプレート: [[Pages Add New SubPanel|ページ作成画面]]の「[[Pages#Page_Templates|ページテンプレート]]」ドロップダウンメニューで選択したファイル名
# page-''slug''.php - 例えば固定ページのスラッグが "about" の場合は <tt>page-about.php</tt>
+
# page-''slug''.php - 例えば固定ページのスラッグが "about" の場合は page-about.php
# page-''ID''.php - 例えば固定ページの ID が6の場合は <tt>page-6.php</tt>
+
# page-''ID''.php - 例えば固定ページの ID が6の場合は page-6.php  
 
# page.php
 
# page.php
 
# index.php
 
# index.php
  
注: これは[[Pages|「固定ページ」]]を指し、ブログの一般的な記事や Web ページのことではありません。また、<tt>page-slug.php</tt> および <tt>page-id.php</tt> は[[Version 2.9|バージョン2.9]]以降でのみ使えます。
+
注: これは[[Pages|「固定ページ」]]を指し、一般的なブログ投稿のページや Web ページのことではありません。
  
<div id="Category_page">
+
<div id="Front_Page_display">
=== カテゴリページ ===
+
=== フロントページ表示 ===
 +
</div>
 +
 
 +
注: このフロントページ表示機能のテンプレートは[[Version 3.0|バージョン 3.0]] 以降のみで使えます。
 +
 
 +
# front-page.php - [[Administration_Panels|管理]] > [[Administration_Panels#Reading|設定]] > [[Settings_Reading_SubPanel|表示設定]] セクションで「フロントページの表示」が「最新の投稿」または「固定ページ」どちらに鳴っている場合でも使われる。
 +
# [[#Page display|固定ページ表示ルール]] - [[Administration_Panels|管理]] > [[Administration_Panels#Reading|設定]] > [[Settings_Reading_SubPanel|表示設定]] セクションの「フロントページの表示」で、「フロントページ」が設定されている場合
 +
# [[#Home Page display|ホームページ表示ルール]] - [[Administration_Panels|管理]] > [[Administration_Panels#Reading|設定]] > [[Settings_Reading_SubPanel|表示設定]] セクションの「フロントページの表示」で、「投稿ページ」が設定されている場合
 +
 
 +
<div id="Category_display">
 +
=== カテゴリー表示 ===
 
</div>
 
</div>
  
 
[[Category Templates|カテゴリーテンプレート]]:
 
[[Category Templates|カテゴリーテンプレート]]:
# category-''slug''.php - 例えばカテゴリーのスラッグが "news" の場合は <tt>category-news.php</tt>
+
# category-''slug''.php - 例えばカテゴリーのスラッグが "news" の場合は category-news.php
# category-''ID''.php - 例えばカテゴリID 6 用のテンプレートであれば <code>category-6.php</code>
+
# category-''ID''.php - 例えばカテゴリーID 6 用のテンプレートであれば category-6.php
 
# [[Category Templates|category.php]]
 
# [[Category Templates|category.php]]
 
# archive.php
 
# archive.php
 
# index.php
 
# index.php
  
注: <tt>category-slug.php</tt> は[[Version 2.9|バージョン2.9]]以降でのみ使えます。
+
<div id="Tag_display">
 
+
=== タグ表示 ===
<div id="Tag_page">
+
=== タグページ ===
+
 
</div>
 
</div>
  
128行目: 137行目:
 
# index.php
 
# index.php
  
注: タグテンプレートは[[Version 2.3|WordPress 2.3]] 以上でのみ使えます。また、<tt>tag-ID.php</tt> は[[Version 2.9|バージョン2.9]]以降でのみ使えます。
+
<div id="Custom_Taxonomies_display">
 +
=== カスタム分類表示 ===
 +
</div>
 +
 
 +
# taxonomy-{taxonomy}-{term}.php - 例えば分類名が "sometax"、スラッグが "someterm" の場合は taxonomy-sometax-someterm.php
 +
# taxonomy-{taxonomy}.php - 例えば分類名が "sometax" の場合は taxonomy-sometax.php
 +
# taxonomy.php
 +
# archive.php
 +
# index.php
  
<div id="Author_page">
+
<div id="Author_display">
=== 著者テンプレート ===
+
=== 作成者表示 ===
 
</div>
 
</div>
  
[[Author Templates|著者テンプレート]]/[[:en:Author Templates|en]]:
+
[[Author Templates|作成者テンプレート]]/[[:en:Author Templates|en]]:
 +
# author-{nicename}.php  - 例えば作成者の nicename が "hanako" の場合は author-hanako.php ([[Version 3.0|バージョン 3.0]] 以降)
 +
#author-{id}.php - 例えば作成者の ID が "6" の場合は author-6.php ([[Version 3.0|バージョン 3.0]] 以降)
 
# author.php
 
# author.php
 
# archive.php
 
# archive.php
 
# index.php
 
# index.php
  
<div id="Date_page">
+
<div id="Date_display">
=== 日付別ページ ===
+
=== 日付別表示 ===
 
</div>
 
</div>
  
例えば月別アーカイブページなど
+
例えば月別アーカイブページなど。
  
 
# date.php
 
# date.php
149行目: 168行目:
 
# index.php
 
# index.php
  
<div id="Search_Result_page">
+
<div id="Search_Result_display">
=== 検索結果ページ ===
+
=== 検索結果表示 ===
 
</div>
 
</div>
  
156行目: 175行目:
 
# index.php
 
# index.php
  
<div id="404_.28Not_Found.29_page">
+
<div id="404_.28Not_Found.29_display">
=== 404 (Not Found) ページ ===
+
=== 404 (Not Found) 表示 ===
 
</div>
 
</div>
  
163行目: 182行目:
 
# index.php
 
# index.php
  
<div id="Attachment_page">
+
<div id="Attachment_display">
 
+
=== 添付ファイル表示 ===
=== 添付ファイルページ ===
+
 
</div>
 
</div>
  
175行目: 193行目:
 
# index.php
 
# index.php
  
 +
<div id="Changelog">
 
== 変更履歴 ==
 
== 変更履歴 ==
 +
</div>
  
 +
* [[Version 3.0|3.0]]: [[#Single Post display|single-{post_type}.php]]、[[#Author_display|author-{nicename}.php]]、[[#Author_display|author-{id}.php]]、[[#Custom Taxonomies display|taxonomy.php]]、[[#Custom Taxonomies display|taxonomy-{taxonomy}.php]]、[[#Custom Taxonomies display|taxonomy-{taxonomy}-{term}.php]] を追加。
 
* [[Version 2.9|2.9]] : [[#WordPress_Page|page-slug.php]]、[[#WordPress_Page|page-id.php]]、[[#Category_Page|category-slug.php]]、[[#Tag_Page|tag-id.php]] を追加。
 
* [[Version 2.9|2.9]] : [[#WordPress_Page|page-slug.php]]、[[#WordPress_Page|page-id.php]]、[[#Category_Page|category-slug.php]]、[[#Tag_Page|tag-id.php]] を追加。
* (バージョン確認中) : [[#Attachment_page|添付ファイルページ]]に使われるテンプレートファイル名を追加。
 
* (バージョン確認中) : [[#Attachment_page|添付ファイルページ]]を追加。
 
 
* [[Version 2.3|2.3]] : [[#Tag_page|タグページ]]を追加。
 
* [[Version 2.3|2.3]] : [[#Tag_page|タグページ]]を追加。
 +
* [[Version 2.0|2.0]] : [[#Attachment_display|添付ファイルテンプレート]]を追加。
  
 
<!-- 冒頭のガイドテンプレートで代用
 
<!-- 冒頭のガイドテンプレートで代用
190行目: 210行目:
 
-->
 
-->
  
{{原文|Template Hierarchy|79799}}<!-- 2009-11-01T18:28:27 Ramiy 版 -->
+
{{原文|Template Hierarchy|86533}}<!-- 2010-04-28T10:13:42 MichaelH 版 -->
  
 
{{DEFAULTSORT:てんふれえとかいそう}}
 
{{DEFAULTSORT:てんふれえとかいそう}}
197行目: 217行目:
 
[[Category:テンプレート]]
 
[[Category:テンプレート]]
 
[[Category:テンプレートタグ]]
 
[[Category:テンプレートタグ]]
 +
[[Category:wp2.0]]
 
[[Category:wp2.3]]
 
[[Category:wp2.3]]
 +
[[Category:wp2.9]]
 
[[Category:wp3.0]]
 
[[Category:wp3.0]]
  
 
[[en:Template Hierarchy]]
 
[[en:Template Hierarchy]]
 +
<!--[[pt-br:Hierarquia de Temas Wordpress]]-->

2010年6月19日 (土) 02:49時点における版

このページ「テンプレート階層」は 情報が古くなっている可能性があります。最新版英語)も合わせてご覧ください。最新に更新してくださる協力者を求めています

はじめに

WordPress テンプレートはパズルのピースのように組み合わせられ、サイト上で Web ページを表示します。一部のテンプレート(例: ヘッダー・フッターテンプレート)はすべての Web ページ内で使用される一方、他のテンプレートはある条件の下でのみ使用されます。

このドキュメンテーションの目的

このドキュメンテーションは、次の疑問に答えてくれるでしょう。

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

このドキュメンテーションの使い方

WordPress v1.5 で「テーマ」機能が導入されて以来、テンプレートはますまカスタマイズしやすくなりました。WordPress テーマを作成するには、WordPress がブログ上の各種ページを表示するためにどのようにテンプレートファイルを選択するのかを正しく理解する必要があります。すでにあるテーマをカスタマイズしたい場合にもどのテンプレートファイルを編集すればいいのかを知る手がかりになるでしょう。

条件分岐タグを使う

WordPress では、テンプレートとクエリの種類を一致させるための方法が複数用意されています。WordPress テーマ制作者は条件分岐タグを使って、あるページを生成するにはどのテンプレートが使われるのかをコントロールすることができます。ここで紹介するすべてのテンプレートファイルを使っていないテーマもありますし、条件分岐タグを使って他のテンプレートファイルを読み込ませているテーマもあります。詳しくは条件分岐タグおよびテーマの作成ページの「クエリベースのテンプレート」セクションをご覧ください。

概観図

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

仕組み

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

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

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

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

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

「りんご」カテゴリーのスラッグが 'apple' だった場合、WordPress はまず category-apple.php というテンプレートファイルを探します。テーマディレクトリ内にこのファイルがない場合、ID が4とすれば、category-4.php を探します。これも見つからなければさらに category.php、次に archive.php を探します。それもなければ、あらゆるページに使える基本のテーマテンプレートファイル index.php を使います。

index.php はテーマに必須ですが、テーマの作成者は他のテンプレートファイルを含めるかどうかを選べます。WordPress は 一致する名前のテンプレートファイルが見つからなければそれをスキップして次の候補のファイル名を探してくれます。例えば、他のページと違った表示にしたいのがカテゴリーID 4 だけなら、テーマディレクトリ内に置くテンプレートファイルは category-4.phpindex.php のみでいいのです。

条件分岐タグの利用

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

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

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

ホームページ表示

訪問者がサイトのメインページ(ホームページ)にアクセスした場合、WordPress はまず最初に、静的フロントページかどうかを判断します。静的フロントページが設定されている場合、固定ページのテンプレート階層に従ってテンプレートを読み込みます。設定されていなければ、次の順にテンプレートファイル名を探し、最初に見つかったテンプレートを使ってページを生成します。

  1. home.php
  2. index.php

個別投稿表示

  1. single-{post_type}.php - 投稿タイプvideos の場合は single-videos.php (バージョン 3.0 以降)
  2. single.php
  3. index.php

固定ページ表示

固定ページ:

  1. カスタムテンプレート: ページ作成画面の「ページテンプレート」ドロップダウンメニューで選択したファイル名
  2. page-slug.php - 例えば固定ページのスラッグが "about" の場合は page-about.php
  3. page-ID.php - 例えば固定ページの ID が6の場合は page-6.php
  4. page.php
  5. index.php

注: これは「固定ページ」を指し、一般的なブログ投稿のページや Web ページのことではありません。

フロントページ表示

注: このフロントページ表示機能のテンプレートはバージョン 3.0 以降のみで使えます。

  1. front-page.php - 管理 > 設定 > 表示設定 セクションで「フロントページの表示」が「最新の投稿」または「固定ページ」どちらに鳴っている場合でも使われる。
  2. 固定ページ表示ルール - 管理 > 設定 > 表示設定 セクションの「フロントページの表示」で、「フロントページ」が設定されている場合
  3. ホームページ表示ルール - 管理 > 設定 > 表示設定 セクションの「フロントページの表示」で、「投稿ページ」が設定されている場合

カテゴリー表示

カテゴリーテンプレート:

  1. category-slug.php - 例えばカテゴリーのスラッグが "news" の場合は category-news.php
  2. category-ID.php - 例えばカテゴリーID 6 用のテンプレートであれば category-6.php
  3. category.php
  4. archive.php
  5. index.php

タグ表示

タグテンプレート/en:

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

カスタム分類表示

  1. taxonomy-{taxonomy}-{term}.php - 例えば分類名が "sometax"、スラッグが "someterm" の場合は taxonomy-sometax-someterm.php
  2. taxonomy-{taxonomy}.php - 例えば分類名が "sometax" の場合は taxonomy-sometax.php
  3. taxonomy.php
  4. archive.php
  5. index.php

作成者表示

作成者テンプレート/en:

  1. author-{nicename}.php - 例えば作成者の nicename が "hanako" の場合は author-hanako.php (バージョン 3.0 以降)
  2. author-{id}.php - 例えば作成者の ID が "6" の場合は author-6.php (バージョン 3.0 以降)
  3. author.php
  4. archive.php
  5. 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

添付ファイル表示

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

  1. MIME_TYPE.php - image.php, video.php, audio.php, application.php, その他 MIME type の最初の部分のファイル名
  2. attachment.php
  3. single.php
  4. index.php

変更履歴


最新英語版: WordPress Codex » Template Hierarchy最新版との差分