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

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

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

提供: WordPress Codex 日本語版
移動先: 案内検索
(最新版と同期en:Template_Hierarchy 23:41, 4 November 2014‎ Kpdesign版)
(和訳完了en:Template_Hierarchy 23:41, 4 November 2014‎ Kpdesign版)
1行目: 1行目:
 
{{テーマ・テンプレートガイド|テンプレート}}
 
{{テーマ・テンプレートガイド|テンプレート}}
<!-- ↓の替わりに↑のガイドテンプレートを挿入
+
 
<div style="border: 1px solid #036; background:#eee; text-align:center; margin:5px; padding:10px">'''Note:'''  This article covers an advanced topic. See [[Stepping Into Templates]] for an introduction to WordPress templates.</div>
+
== はじめに<!--Introduction--> ==
-->
+
== はじめに ==
+
  
 
WordPress テンプレートはパズルのピースのように組み合わせられ、サイト上で Web ページを表示します。一部のテンプレート(例: ヘッダー・フッターテンプレート)はすべての Web ページ内で使用される一方、他のテンプレートはある条件の下でのみ使用されます。
 
WordPress テンプレートはパズルのピースのように組み合わせられ、サイト上で Web ページを表示します。一部のテンプレート(例: ヘッダー・フッターテンプレート)はすべての Web ページ内で使用される一方、他のテンプレートはある条件の下でのみ使用されます。
  
=== このドキュメンテーションの目的 ===
+
=== このドキュメンテーションの目的<!--What this article is about--> ===
  
 
このドキュメンテーションは、次の疑問に答えてくれるでしょう。
 
このドキュメンテーションは、次の疑問に答えてくれるでしょう。
  
<blockquote id="question">
+
<blockquote>
 
''ある種類のページを表示するとき、どのテンプレートファイルが使われるのか?''
 
''ある種類のページを表示するとき、どのテンプレートファイルが使われるのか?''
 
</blockquote>
 
</blockquote>
  
=== このドキュメンテーションの使い方 ===
+
=== このドキュメンテーションの使い方<!--Who might find this useful--> ===
  
WordPress 1.5 で[[テーマの使い方|「テーマ」]]機能が導入されて以来、[[テーマの作成#.E3.83.86.E3.83.BC.E3.83.9E.E3.83.86.E3.83.B3.E3.83.97.E3.83.AC.E3.83.BC.E3.83.88.E3.83.95.E3.82.A1.E3.82.A4.E3.83.AB|テンプレート]]はますまカスタマイズしやすくなりました。[[テーマの作成|WordPress テーマを作成]]するには、WordPress がブログ上の各種ページを表示するためにどのようにテンプレートファイルを選択するのかを正しく理解する必要があります。すでにあるテーマをカスタマイズしたい場合にもどのテンプレートファイルを編集すればいいのかを知る手がかりになるでしょう。
+
WordPress 1.5 で[[テーマの使い方|「テーマ」]]機能が導入されて以来、[[テーマの作成#.E3.83.86.E3.83.BC.E3.83.9E.E3.83.86.E3.83.B3.E3.83.97.E3.83.AC.E3.83.BC.E3.83.88.E3.83.95.E3.82.A1.E3.82.A4.E3.83.AB|テンプレート]]はますますカスタマイズしやすくなりました。[[テーマの作成|WordPress テーマを作成]]するには、WordPress がブログ上の各種ページを表示するためにどのようにテンプレートファイルを選択するのかを正しく理解する必要があります。すでにあるテーマをカスタマイズしたい場合にもどのテンプレートファイルを編集すればいいのかを知る手がかりになるでしょう。
  
{| cellspacing="3"
+
<div id="Using Conditional Tags">
|- valign="top"
+
== 条件分岐タグの利用==
|class="MainPageKnowledgeBaseBox" style="border: 1px solid #ffc9c9; padding: 1em; color: #000000; background-color: #fff3f3"|
+
 
+
'''条件分岐タグを使う'''
+
 
+
WordPress では、テンプレートとクエリの種類を一致させるための方法が複数用意されています。WordPress テーマ制作者は[[テーマの作成#.E3.82.AF.E3.82.A8.E3.83.AA.E3.83.99.E3.83.BC.E3.82.B9.E3.81.AE.E3.83.86.E3.83.B3.E3.83.97.E3.83.AC.E3.83.BC.E3.83.88|条件分岐タグ]]を使って、あるページを生成するにはどのテンプレートが使われるのかをコントロールすることができます。ここで紹介するすべてのテンプレートファイルを使っていないテーマもありますし、条件分岐タグを使って他のテンプレートファイルを読み込ませているテーマもあります。詳しくは[[Conditional Tags|条件分岐タグ]]および[[テーマの作成#.E3.82.AF.E3.82.A8.E3.83.AA.E3.83.99.E3.83.BC.E3.82.B9.E3.81.AE.E3.83.86.E3.83.B3.E3.83.97.E3.83.AC.E3.83.BC.E3.83.88|テーマの作成ページの「クエリベースのテンプレート」セクション]]をご覧ください。
+
|}
+
 
+
 
+
<div id="The_Template_File_Hierarchy">
+
== 仕組み ==
+
 
</div>
 
</div>
  
=== The General Idea ===
+
WordPress がページの種類(クエリタイプ)に合うテンプレートファイルを特定する方法は一つではありません。WordPress テーマ開発者は[[テーマの作成#.E3.82.AF.E3.82.A8.E3.83.AA.E3.83.99.E3.83.BC.E3.82.B9.E3.81.AE.E3.83.86.E3.83.B3.E3.83.97.E3.83.AC.E3.83.BC.E3.83.88|条件分岐タグ]]を使用して、あるページの生成にどのテンプレートを使うかを制御できます。テーマの中にはここで紹介するすべてのテンプレートファイルを実装しないテーマもありますし、条件分岐タグを使って他のテンプレートファイルを読み込むテーマもあります。より詳細な情報については[[Conditional Tags|条件分岐タグ]]および[[テーマの作成#.E3.82.AF.E3.82.A8.E3.83.AA.E3.83.99.E3.83.BC.E3.82.B9.E3.81.AE.E3.83.86.E3.83.B3.E3.83.97.E3.83.AC.E3.83.BC.E3.83.88|テーマの作成ページの「クエリベースのテンプレート」セクション]]を参照してください。
  
訪問者が WordPress サイト上のページにアクセスしたとき、WordPress は次のように動きます。
+
== テンプレートファイルの階層<!--The Template File Hierarchy-->==
  
URI に含まれる[[用語集#Query_string|クエリ文字列]]とクエリタイプを照合し、要求されているページの種類(メインページ、カテゴリーページなど)を判断。
+
=== 概念<!--The General Idea--> ===
該当するページ種類の[[#ページ種類別テンプレート階層|テンプレート階層]]に基づき、現在のテーマディレクトリ内からテンプレートファイルを探す。
+
最初に見つかったテンプレートファイルを用いて、要求されたページを生成。
+
  
WordPress uses the [[Glossary#Query_String|Query String]] &mdash; information contained within each link on your website &mdash; to decide which template or set of templates will be used to display the page.
+
WordPress [[用語集#クエリ文字列|クエリ文字列]] &mdash; Web サイトの各リンク内に含まれる情報 &mdash; を使用して、ページの表示にどのテンプレートあるいはテンプレートの集合を使用すべきかを決定します。
  
First, WordPress matches every Query String to query types &mdash; i.e. it decides what type of page (a search page, a category page, the home page etc.) is being requested.
+
まず WordPress はすべてのクエリ文字列とクエリタイプを照合し、どの種類のページ(検索ページ、カテゴリーページ、ホームページ等) が要求されているかを決定します。
  
Templates are then chosen &mdash; and web page content is generated &mdash; in the order suggested by the WordPress Template hierarchy, depending upon what templates are available in a particular WordPress Theme.
+
次にテンプレートが選択され &mdash; そして、Web ページが生成されます。テンプレートは、WordPress テンプレート階層で規定された順番に、WordPress テーマ内で該当のテンプレートが利用かどうかにより決まります。
  
WordPress looks for template files with specific names in the current Theme's directory and uses the ''first matching'' template file listed under the appropriate query section below.
+
WordPress は現在のテーマディレクトリ内から特定のファイル名でテンプレートを探し、以下の該当の節で挙げたリストから''最初に見つけた''テンプレートファイルを使用します。
  
With the exception of the basic <tt style="font-weight:bold; color:#036">index.php</tt> template file, Theme developers can choose whether they want to implement a particular template file or not. If WordPress cannot find a template file with a matching name, it skips down to the next file name in the hierarchy. If WordPress cannot find any matching template file, <tt style="font-weight:bold; color:#036">index.php</tt> (the Theme's home page template file) will be used. 
+
基本の <tt style="font-weight:bold; color:#036">index.php</tt> テンプレートファイルはテーマに必須ですが、テーマ開発者は他のテンプレートファイルを含めるかどうかを選択できます。 WordPress は 一致する名前のテンプレートファイルが見つからなければそれをスキップして次の候補のファイル名を探します。最後まで一致するテンプレートファイルが見つからなければ <tt style="font-weight:bold; color:#036">index.php</tt> (テーマのホームページテンプレートファイル) が使用されます。
  
=== Examples ===
+
=== 例<!--Examples--> ===
  
例えば、ブログが <code><nowiki>http://example.com/wp/</nowiki></code> にあり、訪問者が <code><nowiki>http://example.com/wp/category/apple/</nowiki></code> という「りんご」カテゴリーのアーカイブページにアクセスしたとしましょう。
+
例えば、ブログが <tt style="font-weight:bold; color:#036"><nowiki>http://example.com/blog/</nowiki></tt> にあり、ユーザーがカテゴリーページへのリンク <tt style="font-weight:bold; color:#036"><nowiki>http://example.com/blog/category/your-cat/</nowiki></tt> をクリックしたとします。WordPress はテンプレート階層を使用して、以下の順番で正しいファイルを探し、生成します。
WordPress は、現在のテーマディレクトリの中から「りんご」カテゴリーに使えるテンプレートファイルを探します。
+
  
[[#Category page|カテゴリーページのテンプレート階層]]は次のとおりです。
+
WordPress は現在のテーマディレクトリ内で、カテゴリーID に合致するテンプレートファイルを探します。
WordPress はこのリストの'''上から順に'''、ファイルがないかどうか探していき、'''最初に'''見つけたファイルを使います。
+
<blockquote>
+
# category-''slug''.php -- 特定のカテゴリー用テンプレート
+
# category-''ID''.php -- 特定のカテゴリー用テンプレート
+
# category.php -- カテゴリーの汎用テンプレート
+
# archive.php -- 汎用アーカイブテンプレート(タグ・日別アーカイブなどと共用)
+
# index.php
+
</blockquote>
+
  
「りんご」カテゴリーのスラッグが <code>'apple'</code> だった場合、
+
# カテゴリーID が 4 なら、WordPress はテンプレートファイル <tt style="font-weight:bold; color:#036">category-4.php</tt> を探します。
WordPress はまず <code>category-''apple''.php</code> というテンプレートファイルを探します。
+
# 見つからなければ、次に WordPress は一般的なカテゴリーテンプレートファイル <tt style="font-weight:bold; color:#036">category.php</tt> を探します。
 +
# このファイルもなければ、WordPress は一般的なアーカイブテンプレートファイル <tt style="font-weight:bold; color:#036">archive.php</tt> を探します。
 +
# これもなければ、WordPress はメインテーマテンプレートファイル <tt style="font-weight:bold; color:#036">index.php</tt> を使用します。
  
テーマディレクトリ内にこのファイルがない場合、ID が4とすれば、<code>category-''4''.php</code> を探します。
+
ユーザーがホームページ <tt style="font-weight:bold; color:#036"><nowiki>http://example.com/blog/</nowiki></tt> にアクセスすると、以下の順番でテンプレートファイルが決定されます。
これも見つからなければ <code>category.php</code>を探します。
+
これでも見つからなければ <code>archive.php</code> を探します。
+
それもなければ、あらゆるページに使える基本のテーマテンプレートファイル <code>index.php</code> を使います。
+
  
<code>index.php</code> はテーマに必須ですが、テーマの作成者は他のテンプレートファイルを含めるかどうかを選べます。
+
# WordPress は、まず、[[Creating_a_Static_Front_Page|静的フロントページ]]があるかどうかを判断します。静的フロントページが設定されている場合、WordPress は[[#Page_display|固定ページのテンプレート階層]]に従ってテンプレートを読み込みます。
WordPress は 一致する名前のテンプレートファイルが見つからなければそれをスキップして次の候補のファイル名を探してくれます。
+
# 静的フロントページが設定されていない場合、WordPress はテンプレートファイル <tt style="font-weight:bold; color:#036">home.php</tt> を探し、これを使用して要求されたページを生成します。
例えば、他のページと違った表示にしたいのがカテゴリーID 4 だけなら、
+
# <tt style="font-weight:bold; color:#036">home.php</tt> が見つからない場合、WordPress は現在のテーマディレクトリ内でファイル <tt style="font-weight:bold; color:#036">index.php</tt> を探し、このテンプレートを使用してページを生成します。
テーマディレクトリ内に置くテンプレートファイルは <code>category-4.php</code> と <code>index.php</code> のみでいいのです。
+
 
+
If your blog is at <tt style="font-weight:bold; color:#036"><nowiki>http://example.com/blog/</nowiki></tt> and a visitor clicks on a link to a category page like
+
<tt style="font-weight:bold; color:#036"><nowiki>http://example.com/blog/category/your-cat/</nowiki></tt>: Here is the progression of how WordPress uses the template hierarchy to find and generate the right file.
+
 
+
WordPress looks for a template file in the current Theme's directory that matches the category's ID.
+
 
+
# If the category's ID is 4, WordPress looks for a template file named <tt style="font-weight:bold; color:#036">category-4.php</tt>.
+
# If it is missing, WordPress next looks for a generic category template file, <tt style="font-weight:bold; color:#036">category.php</tt>.
+
# If this file does not exist either, WordPress looks for a generic archive template, <tt style="font-weight:bold; color:#036">archive.php</tt>.
+
# If it is missing as well, WordPress falls back on the main Theme template file, <tt style="font-weight:bold; color:#036">index.php</tt>.
+
 
+
If a visitor goes to your home page at <tt style="font-weight:bold; color:#036"><nowiki>http://example.com/blog/</nowiki></tt>, the following happens:
+
 
+
# WordPress first determines whether it has a [[Creating_a_Static_Front_Page|static front page]]. If a static front page has been set, then WordPress loads that page according to the [[Template_Hierarchy#Page_display|page template hierarchy]].
+
# If a static front page has not been set, then WordPress looks for a template file called <tt style="font-weight:bold; color:#036">home.php</tt> and uses it to generate the requested page.
+
# If <tt style="font-weight:bold; color:#036">home.php</tt> is missing, WordPress looks for a file called <tt style="font-weight:bold; color:#036">index.php</tt> in the active theme's directory, and uses that template to generate the page.
+
  
 
<div id="Visual_Overview">
 
<div id="Visual_Overview">
99行目: 58行目:
 
</div>
 
</div>
  
次の図は、WordPress テンプレート階層に基づいてウェブページを生成する際に呼ばれるテンプレートファイルを図解したものです。訪問者がアクセスする各種ページの[[用語集#Query string|クエリ文字列]]と、それに対応する[[Conditional Tags|条件分岐タグ]]、そして、WordPress が探すテンプレートファイル名の順序を示しています。
+
次の図は WordPress テンプレート階層に基づいて WordPress ページを生成する際、どのテンプレートが呼ばれるかを示します。
  
[[ファイル:Template Hierarchy.png|700px|WordPress テンプレート階層構造図]]
+
[[Image:wp-template-hierarchy.jpg|750px|WordPress テンプレート階層構造図]]
 +
<small>[http://wpdocs.sourceforge.jp/wiki/images/wp-template-hierarchy.jpg Full-Size Image (jpg) - Image courtesy Michelle Schulp at marktimemedia.com]</small>
  
* [[:en:Image:Template_Hierarchy.png|WordPress テンプレート階層構造図]] (画像は英語版Codex にあります)
+
[http://unofficialtokyo.com/wordpress-template-hierarchy 対話式バージョン]
* [http://codex.wordpress.org/images/1/18/Template_Hierarchy.png 英語版Codexオリジナル画像(PNG形式)]
+
  
[[Image:wp-template-hierarchy.jpg|750px|Graphic Example of the WordPress Template Hierarchy Structure]]
+
テンプレート関連の条件タグや BODY CSS クラスを含む詳細な階層図は [http://www.chipbennett.net/themes/template-hierarchy こちら] を参照。
<small>[http://codex.wordpress.org/images/9/96/wp-template-hierarchy.jpg Full-Size Image (jpg) - Image courtesy Michelle Schulp at marktimemedia.com]</small>
+
  
[http://wphierarchy.com/ View an interactive version]
+
WordCamp Minneapolis ではちょっと変わったテンプレート階層図が作成された。[http://2013.minneapolis.wordcamp.org/2013/04/27/wordpress-theme-template-poster/ PDF をダウンロード]
 
+
A more in depth hierarchy diagram, including template-related conditional tags and body CSS classes, can be found [http://www.chipbennett.net/themes/template-hierarchy here].
+
 
+
WordCamp Minneapolis developed a poster with a more whimsical take on the template hierarchy.
+
[http://2013.minneapolis.wordcamp.org/2013/04/27/wordpress-theme-template-poster/ Download the PDF]
+
 
+
<div id="Using Conditional Tags">
+
 
+
== 条件分岐タグの利用 ==
+
</div>
+
 
+
WordPress がページの種類(クエリタイプ)に合うテンプレートファイルを特定する方法は一つではありません。'''[[Conditional Tags|条件分岐タグ]]'''は表示しようとしているページの種類を判定できるので、その判定結果によってテンプレートファイルを切り替えたり、複数のページ種類で共通のテンプレートファイルを使い、その中の一部分だけをページ種類に応じて切り替える、といった細かい制御もできます。具体的な活用例として、デフォルトテーマの <code>sidebar.php</code> が参考になるでしょう。詳しくは[[Conditional Tags|条件分岐タグ]]および[[テーマの作成#Query-based Templates|テーマの作成 - クエリベースのテンプレート]]をご覧ください。
+
  
 
<div id="The_Template_Hierarchy_In_Detail">
 
<div id="The_Template_Hierarchy_In_Detail">
133行目: 79行目:
 
</div>
 
</div>
  
<!-- 英語版の Examples セクションの後半より -->訪問者がサイトのメインページ(ホームページ)にアクセスした場合、WordPress はまず最初に、[[Creating_a_Static_Front_Page|静的フロントページ]]<!-- リンク先は表示設定画面のほうがいいかも -->かどうかを判断します。静的フロントページが設定されている場合、[[#WordPress_Page|固定ページのテンプレート階層]]に従ってテンプレートを読み込みます。設定されていなければ、次の順にテンプレートファイル名を探し、最初に見つかったテンプレートを使ってページを生成します。
+
サイトフロントページ、または固定ページの上にあるブログ投稿インデックスページの表示に使用されるテンプレートファイル。注意: サイトフロントページ上にある場合、フロントページテンプレートは、ブログ投稿インデックス (ホーム) テンプレートに優先します。
 
+
# home.php
+
# index.php
+
 
+
Template file used to render the Blog Posts Index, whether on the site front page or on a static page. Note: on the Site Front Page, the Front Page template takes precedence over the Blog Posts Index (Home) template.
+
 
:#<tt style="font-weight:bold; color:#036">home.php</tt>
 
:#<tt style="font-weight:bold; color:#036">home.php</tt>
 
:#<tt style="font-weight:bold; color:#036">index.php</tt>
 
:#<tt style="font-weight:bold; color:#036">index.php</tt>
  
 
<div id="Front_Page_display">
 
<div id="Front_Page_display">
 
 
=== フロントページ表示 ===
 
=== フロントページ表示 ===
 
</div>
 
</div>
  
[[Version 3.0|バージョン 3.0]] 以降。
+
サイトフロントページの表示に使用されるテンプレートファイル。フロントページはブログ投稿インデックス、または固定ページを表示します。フロントページテンプレートは、ブログ投稿インデックス (ホーム) テンプレートに優先します。
 
+
:#<tt style="font-weight:bold; color:#036">front-page.php</tt> - [[Administration_Panels|管理]] > [[Administration_Panels#Reading|設定]] > [[Settings_Reading_SubPanel|表示設定]] セクションで「フロントページの表示」が「最新の投稿」または「固定ページ」どちらになっている場合でも使われる。
# front-page.php - [[Administration_Panels|管理]] > [[Administration_Panels#Reading|設定]] > [[Settings_Reading_SubPanel|表示設定]] セクションで「フロントページの表示」が「最新の投稿」または「固定ページ」どちらになっている場合でも使われる。
+
:#[[#Page display|固定ページ表示ルール]] - [[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|表示設定]] セクションの「フロントページの表示」で、「投稿ページ」が設定されている場合
# [[#Home Page display|ホームページ表示ルール]] - [[Administration_Panels|管理]] > [[Administration_Panels#Reading|設定]] > [[Settings_Reading_SubPanel|表示設定]] セクションの「フロントページの表示」で、「投稿ページ」が設定されている場合
+
 
+
Template file used to render the Site Front Page, whether the front page displays the Blog Posts Index or a static page. The Front Page template takes precedence over the Blog Posts Index (Home) template.
+
:#<tt style="font-weight:bold; color:#036">front-page.php</tt> - Used for both '''Your latest posts''' or '''A static page''' as set in the '''Front page displays''' section of [[Administration_Panels#Reading|Settings]] -> [[Settings_Reading_SubPanel|Reading]]
+
:#[[#Page display|Page display rules]] - When '''Front page''' is set in the '''Front page displays''' section of [[Administration_Panels#Reading|Settings]] -> [[Settings_Reading_SubPanel|Reading]]
+
:#[[#Home Page display|Home Page display rules]] - When '''Posts page''' is set in the '''Front page displays''' section of [[Administration_Panels#Reading|Settings]] -> [[Settings_Reading_SubPanel|Reading]]
+
 
+
  
 
<div id="Single_Post_display">
 
<div id="Single_Post_display">
163行目: 96行目:
 
</div>
 
</div>
  
#single-{post_type}.php - [[関数リファレンス/register_post_type|投稿タイプ]] が <code>videos</code> の場合は single-videos.php ([[Version 3.0|バージョン 3.0]] 以降)
+
個別投稿ページの表示に使用されるテンプレートファイル。
# single.php
+
:#<tt style="font-weight:bold; color:#036">single-{post_type}.php</tt> - [[投稿タイプ|投稿タイプ]]<tt style="font-weight:bold; color:#036">product</tt> ならば WordPress <tt style="font-weight:bold; color:#036">single-product.php</tt> を探す。
# index.php
+
 
+
Template file used to render a single post page.
+
:#<tt style="font-weight:bold; color:#036">single-{post_type}.php</tt> - If the [[Post Types|post type]] were <tt style="font-weight:bold; color:#036">product</tt>, WordPress would look for <tt style="font-weight:bold; color:#036">single-product.php</tt>.
+
 
:#<tt style="font-weight:bold; color:#036">single.php</tt>
 
:#<tt style="font-weight:bold; color:#036">single.php</tt>
 
:#<tt style="font-weight:bold; color:#036">index.php</tt>
 
:#<tt style="font-weight:bold; color:#036">index.php</tt>
176行目: 105行目:
 
</div>
 
</div>
  
[[Pages|固定ページ]]:
+
固定ページ (<tt>page</tt> 投稿タイプ) の表示に使用されるテンプレートファイル。
# カスタムテンプレート: [[Pages Add New SubPanel|ページ作成画面]]の「[[Pages#Page_Templates|テンプレート]]」ドロップダウンメニューで選択したテンプレート名
+
:#<tt style="font-weight:bold; color:#036">カスタムテンプレートファイル</tt> - [[Pages Add New SubPanel|ページ作成画面]]の「[[Pages#Page_Templates|テンプレート]]」ドロップダウンメニューで選択したテンプレート名。[[Class_Reference/WP_Theme#Get_Custom_Page_Templates|get_page_templates()]]参照。
# page-''slug''.php - 例えば固定ページのスラッグが "about" の場合は page-about.php
+
:#<tt style="font-weight:bold; color:#036">page-{slug}.php</tt> - 固定ページのスラッグが '''recent-news''' ならば WordPress <tt style="font-weight:bold; color:#036">page-recent-news.php</tt> を探す。
# page-''ID''.php - 例えば固定ページの ID が6の場合は page-6.php
+
:#<tt style="font-weight:bold; color:#036">page-{id}.php</tt> - 固定ページIDが '''6''' ならば WordPress <tt style="font-weight:bold; color:#036">page-6.php</tt> を探す。
# page.php
+
# index.php
+
 
+
注: これは[[Pages|「固定ページ」]]を指し、一般的なブログ投稿のページや Web ページのことではありません。
+
 
+
Template file used to render a static page (<tt>page</tt> post-type)
+
:#<tt style="font-weight:bold; color:#036">custom template file</tt> - The [[Page_Templates|Page Template]] assigned to the Page. See [[Class_Reference/WP_Theme#Get_Custom_Page_Templates|get_page_templates()]].
+
:#<tt style="font-weight:bold; color:#036">page-{slug}.php</tt> - If the page slug is '''recent-news''', WordPress will look to use <tt style="font-weight:bold; color:#036">page-recent-news.php</tt>
+
:#<tt style="font-weight:bold; color:#036">page-{id}.php</tt> - If the page ID is '''6''', WordPress will look to use <tt style="font-weight:bold; color:#036">page-6.php</tt>
+
 
:#<tt style="font-weight:bold; color:#036">page.php</tt>
 
:#<tt style="font-weight:bold; color:#036">page.php</tt>
 
:#<tt style="font-weight:bold; color:#036">index.php</tt>
 
:#<tt style="font-weight:bold; color:#036">index.php</tt>
  
 +
参照: [[Pages|固定ページ]]
  
 
<div id="Category_display">
 
<div id="Category_display">
 
 
=== カテゴリー表示 ===
 
=== カテゴリー表示 ===
 
</div>
 
</div>
  
[[Category Templates|カテゴリーテンプレート]]。
+
カテゴリーアーカイブインデックスページの表示に使用されるテンプレートファイル。
 
+
:#<tt style="font-weight:bold; color:#036">category-{slug}.php</tt> - カテゴリーのスラッグが <tt style="font-weight:bold; color:#036">news</tt> ならば WordPress <tt style="font-weight:bold; color:#036">category-news.php</tt> を探す。
# category-''slug''.php - 例えばカテゴリーのスラッグが "news" の場合は category-news.php
+
:#<tt style="font-weight:bold; color:#036">category-{id}.php</tt> - カテゴリー ID <tt style="font-weight:bold; color:#036">6</tt> ならば WordPress <tt style="font-weight:bold; color:#036">category-6.php</tt> を探す。
# category-''ID''.php - 例えばカテゴリーID 6 用のテンプレートであれば category-6.php
+
# [[Category Templates|category.php]]
+
# archive.php
+
# index.php
+
 
+
Template file used to render a Category Archive Index page
+
:#<tt style="font-weight:bold; color:#036">category-{slug}.php</tt> - If the category's slug were <tt style="font-weight:bold; color:#036">news</tt>, WordPress would look for <tt style="font-weight:bold; color:#036">category-news.php</tt>
+
:#<tt style="font-weight:bold; color:#036">category-{id}.php</tt> - If the category's ID were <tt style="font-weight:bold; color:#036">6</tt>, WordPress would look for <tt style="font-weight:bold; color:#036">category-6.php</tt>
+
 
:#<tt style="font-weight:bold; color:#036">category.php</tt>
 
:#<tt style="font-weight:bold; color:#036">category.php</tt>
 
:#<tt style="font-weight:bold; color:#036">archive.php</tt>
 
:#<tt style="font-weight:bold; color:#036">archive.php</tt>
 
:#<tt style="font-weight:bold; color:#036">index.php</tt>
 
:#<tt style="font-weight:bold; color:#036">index.php</tt>
  
 
+
参照: [[Category Templates|カテゴリーテンプレート]]
  
 
<div id="Tag_display">
 
<div id="Tag_display">
219行目: 131行目:
 
</div>
 
</div>
  
[[Tag Templates|タグテンプレート]]/[[:en:Tag Templates|en]]。
+
タグアーカイブインデックスページの表示に使用されるテンプレートファイル。
 
+
:#<tt style="font-weight:bold; color:#036">tag-{slug}.php</tt> - タグのスラッグが <tt style="font-weight:bold; color:#036">sometag</tt> ならば WordPress <tt style="font-weight:bold; color:#036">tag-sometag.php</tt> を探す。
# tag-''slug''.php
+
:#<tt style="font-weight:bold; color:#036">tag-{id}.php</tt> - タグ ID <tt style="font-weight:bold; color:#036">6</tt> ならば WordPress <tt style="font-weight:bold; color:#036">tag-6.php</tt> を探す。
# tag-''ID''.php
+
# tag.php
+
# archive.php
+
# index.php
+
 
+
Template file used to render a Tag Archive Index page
+
:#<tt style="font-weight:bold; color:#036">tag-{slug}.php</tt> - If the tag's slug were <tt style="font-weight:bold; color:#036">sometag</tt>, WordPress would look for <tt style="font-weight:bold; color:#036">tag-sometag.php</tt>
+
:#<tt style="font-weight:bold; color:#036">tag-{id}.php</tt> - If the tag's ID were <tt style="font-weight:bold; color:#036">6</tt>, WordPress would look for <tt style="font-weight:bold; color:#036">tag-6.php</tt>
+
 
:#<tt style="font-weight:bold; color:#036">tag.php</tt>
 
:#<tt style="font-weight:bold; color:#036">tag.php</tt>
 
:#<tt style="font-weight:bold; color:#036">archive.php</tt>
 
:#<tt style="font-weight:bold; color:#036">archive.php</tt>
 
:#<tt style="font-weight:bold; color:#036">index.php</tt>
 
:#<tt style="font-weight:bold; color:#036">index.php</tt>
  
 
+
参照: [[Tag Templates|タグテンプレート]]/[[:en:Tag Templates|en]]
  
 
<div id="Custom_Taxonomies_display">
 
<div id="Custom_Taxonomies_display">
240行目: 144行目:
 
</div>
 
</div>
  
[[カスタム分類]]テンプレート。
+
[[タクソノミー|カスタム分類]]アーカイブインデックスページの表示に使用されるテンプレートファイル。
 
+
:#<tt style="font-weight:bold; color:#036">taxonomy-{taxonomy}-{term}.php</tt> - 分類名が <tt style="font-weight:bold; color:#036">sometax</tt>、項目が <tt style="font-weight:bold; color:#036">someterm</tt> ならば WordPress <tt style="font-weight:bold; color:#036">taxonomy-sometax-someterm.php</tt> を探す。投稿フォーマットの場合、分類名は 'post_format'、項目は 'post_format-{format}'、つまり <tt style="font-weight:bold; color:#036">taxonomy-post_format-post-format-link.php</tt>
# taxonomy-{taxonomy}-{term}.php - 例えば分類名が "sometax"、スラッグが "someterm" の場合は taxonomy-sometax-someterm.php
+
:#<tt style="font-weight:bold; color:#036">taxonomy-{taxonomy}.php</tt> - 分類名が <tt style="font-weight:bold; color:#036">sometax</tt> ならば WordPress <tt style="font-weight:bold; color:#036">taxonomy-sometax.php</tt> を探す。
# taxonomy-{taxonomy}.php - 例えば分類名が "sometax" の場合は taxonomy-sometax.php
+
# taxonomy.php
+
# archive.php
+
# index.php
+
 
+
Template file used to render the Archive Index page for a [[Taxonomies|Custom Taxonomy]]
+
:#<tt style="font-weight:bold; color:#036">taxonomy-{taxonomy}-{term}.php</tt> - If the taxonomy were <tt style="font-weight:bold; color:#036">sometax</tt>, and  taxonomy's term were <tt style="font-weight:bold; color:#036">someterm</tt> WordPress would look for <tt style="font-weight:bold; color:#036">taxonomy-sometax-someterm.php.</tt> In the case of Post Formats, the taxonomy is 'post_format' and the terms are 'post_format-{format}. i.e. <tt style="font-weight:bold; color:#036">taxonomy-post_format-post-format-link.php</tt>
+
:#<tt style="font-weight:bold; color:#036">taxonomy-{taxonomy}.php</tt> - If the taxonomy were <tt style="font-weight:bold; color:#036">sometax</tt>, WordPress would look for <tt style="font-weight:bold; color:#036">taxonomy-sometax.php</tt>
+
 
:#<tt style="font-weight:bold; color:#036">taxonomy.php</tt>
 
:#<tt style="font-weight:bold; color:#036">taxonomy.php</tt>
 
:#<tt style="font-weight:bold; color:#036">archive.php</tt>
 
:#<tt style="font-weight:bold; color:#036">archive.php</tt>
 
:#<tt style="font-weight:bold; color:#036">index.php</tt>
 
:#<tt style="font-weight:bold; color:#036">index.php</tt>
  
 
+
参照: [[タクソノミー|カスタム分類]]
  
 
<div id="Custom_Post_Types_display">
 
<div id="Custom_Post_Types_display">
261行目: 157行目:
 
</div>
 
</div>
  
[[カスタム投稿タイプ]]テンプレート。
+
[[Post Types|カスタム投稿タイプ]] アーカイブインデックスページの表示に使用されるテンプレートファイル。
 
+
:#<tt style="font-weight:bold; color:#036">archive-{post_type}.php</tt> - [[Post Types|投稿タイプ]] が <tt style="font-weight:bold; color:#036">product</tt> ならば WordPress は <tt style="font-weight:bold; color:#036">archive-product.php</tt> を探す。
# archive-{post_type}.php - 例えば投稿タイプ名が "product" の場合は archive-product.php.
+
:#<tt style="font-weight:bold; color:#036">archive.php</tt>
# archive.php
+
:#<tt style="font-weight:bold; color:#036">index.php</tt>
# index.php
+
 
+
 
(カスタム投稿タイプの個別ページを表示する場合は[[#Single_Post_display|個別投稿表示]]を参照)
 
(カスタム投稿タイプの個別ページを表示する場合は[[#Single_Post_display|個別投稿表示]]を参照)
  
Template file used to render the Archive Index page for a [[Post Types|Custom Post Type]]
+
参照: [[Post Types|カスタム投稿タイプ]]
:#<tt style="font-weight:bold; color:#036">archive-{post_type}.php</tt> - If the [[Post Types|post type]] were <tt style="font-weight:bold; color:#036">product</tt>, WordPress would look for <tt style="font-weight:bold; color:#036">archive-product.php</tt>.
+
:#<tt style="font-weight:bold; color:#036">archive.php</tt>
+
:#<tt style="font-weight:bold; color:#036">index.php</tt>
+
(For rendering a single custom post type, refer to the Single Post display section above.)
+
  
 
<div id="Author_display">
 
<div id="Author_display">
279行目: 169行目:
 
</div>
 
</div>
  
[[Author Templates|作成者テンプレート]]/[[:en:Author Templates|en]]。
+
作成者別アーカイブインデックスページの表示に使用されるテンプレートファイル。
 
+
:#<tt style="font-weight:bold; color:#036">author-{nicename}.php</tt> - 作成者の nicename が<tt style="font-weight:bold; color:#036">rami</tt>ならば WordPress <tt style="font-weight:bold; color:#036">author-rami.php</tt> を探す。
# author-{nicename}.php  - 例えば作成者の nicename が "hanako" の場合は author-hanako.php ([[Version 3.0|バージョン 3.0]] 以降)
+
:#<tt style="font-weight:bold; color:#036">author-{id}.php</tt> - 作成者の作成者ID が <tt style="font-weight:bold; color:#036">6</tt> ならば WordPress <tt style="font-weight:bold; color:#036">author-6.php</tt> を探す。
#author-{id}.php - 例えば作成者の ID が "6" の場合は author-6.php ([[Version 3.0|バージョン 3.0]] 以降)
+
# author.php
+
# archive.php
+
# index.php
+
 
+
Template file used to render an Author Archive Index page
+
:#<tt style="font-weight:bold; color:#036">author-{nicename}.php</tt> - If the author's nice name were <tt style="font-weight:bold; color:#036">rami</tt>, WordPress would look for <tt style="font-weight:bold; color:#036">author-rami.php</tt>.
+
:#<tt style="font-weight:bold; color:#036">author-{id}.php</tt> - If the author's ID were <tt style="font-weight:bold; color:#036">6</tt>, WordPress would look for <tt style="font-weight:bold; color:#036">author-6.php</tt>.
+
 
:#<tt style="font-weight:bold; color:#036">author.php</tt>
 
:#<tt style="font-weight:bold; color:#036">author.php</tt>
 
:#<tt style="font-weight:bold; color:#036">archive.php</tt>
 
:#<tt style="font-weight:bold; color:#036">archive.php</tt>
 
:#<tt style="font-weight:bold; color:#036">index.php</tt>
 
:#<tt style="font-weight:bold; color:#036">index.php</tt>
  
 +
参照: [[Author Templates|作成者テンプレート]]/[[:en:Author Templates|en]]
  
 
<div id="Date_display">
 
<div id="Date_display">
299行目: 182行目:
 
</div>
 
</div>
  
日時ごとのアーカイブテンプレート。
+
日付別アーカイブインデックスページの表示に使用されるテンプレートファイル。
 
+
# date.php
+
# archive.php
+
# index.php
+
 
+
Template file used to render a Date-Based Archive Index page
+
 
:#<tt style="font-weight:bold; color:#036">date.php</tt>
 
:#<tt style="font-weight:bold; color:#036">date.php</tt>
 
:#<tt style="font-weight:bold; color:#036">archive.php</tt>
 
:#<tt style="font-weight:bold; color:#036">archive.php</tt>
315行目: 192行目:
 
</div>
 
</div>
  
[[Creating a Search Page|検索テンプレート]]。
+
検索結果インデックスページの表示に使用されるテンプレートファイル。
 
+
# search.php
+
# index.php
+
 
+
Template file used to render a Search Results Index page
+
 
:#<tt style="font-weight:bold; color:#036">search.php</tt>
 
:#<tt style="font-weight:bold; color:#036">search.php</tt>
 
:#<tt style="font-weight:bold; color:#036">index.php</tt>
 
:#<tt style="font-weight:bold; color:#036">index.php</tt>
  
 
+
参照: [[Creating a Search Page|検索テンプレート]]
  
 
<div id="404_.28Not_Found.29_display">
 
<div id="404_.28Not_Found.29_display">
330行目: 202行目:
 
</div>
 
</div>
  
[[Creating_an_Error_404_Page|404 テンプレート]]。
+
サーバーエラー 404 ページの表示に使用されるテンプレートファイル。
 
+
# 404.php
+
# index.php
+
 
+
Template file used to render a Server 404 error page
+
 
:#<tt style="font-weight:bold; color:#036">404.php</tt>
 
:#<tt style="font-weight:bold; color:#036">404.php</tt>
 
:#<tt style="font-weight:bold; color:#036">index.php</tt>
 
:#<tt style="font-weight:bold; color:#036">index.php</tt>
  
 +
参照: [[Creating_an_Error_404_Page|404 テンプレート]]
  
 
<div id="Attachment_display">
 
<div id="Attachment_display">
344行目: 212行目:
 
</div>
 
</div>
  
記事本文への[[Using Image and File Attachments#Inserting Files|画像添付]]/[[:en:Using Image and File Attachments#Inserting Files|en]]で 'Linked to Page' を選んだ場合に、画像のリンク先として使われるページ
+
個別添付ファイルページ (<tt>attachment</tt> 投稿タイプ) の表示に使用されるテンプレートファイル。
 
+
# ''MIME_TYPE''.php - image.php, video.php, audio.php, application.php, その他 [http://en.wikipedia.org/wiki/Internet_media_type MIME type] の最初の部分のファイル名
+
# attachment.php
+
# single.php
+
# index.php
+
  
Template file used to render a single attachment (<tt>attachment</tt> post-type) page
+
:#<tt style="font-weight:bold; color:#036">{MIME_type}.php</tt> - 任意の [http://en.wikipedia.org/wiki/Internet_media_type MIME タイプ] (<tt style="font-weight:bold; color:#036">image.php</tt>, <tt style="font-weight:bold; color:#036">video.php</tt>, <tt style="font-weight:bold; color:#036">application.php</tt>)<tt>text/plain</tt>ならば、以下の順番:   
:#<tt style="font-weight:bold; color:#036">{MIME_type}.php</tt> - it can be any [http://en.wikipedia.org/wiki/Internet_media_type MIME type] (<tt style="font-weight:bold; color:#036">image.php</tt>, <tt style="font-weight:bold; color:#036">video.php</tt>, <tt style="font-weight:bold; color:#036">application.php</tt>).  For <tt>text/plain</tt>, in order:   
+
 
:##<tt style="font-weight:bold; color:#036">text.php</tt>
 
:##<tt style="font-weight:bold; color:#036">text.php</tt>
 
:##<tt style="font-weight:bold; color:#036">plain.php</tt>
 
:##<tt style="font-weight:bold; color:#036">plain.php</tt>
361行目: 223行目:
 
:#<tt style="font-weight:bold; color:#036">index.php</tt>
 
:#<tt style="font-weight:bold; color:#036">index.php</tt>
  
== Filter Hierarchy ==
+
== 階層のフィルター<!--Filter Hierarchy--> ==
  
The WordPress templates system allow you to filter the hierarchy. The filter (located in the [[Function_Reference/get_query_template|<tt>get_query_template()</tt>]] function) uses this filter name: <tt style="font-weight:bold; color:#036">"{$type}_template"</tt> where <tt style="font-weight:bold; color:#036">$type</tt> is the a file name in the hierarchy without the <tt style="font-weight:bold; color:#036">.php</tt> extension.
+
WordPress テンプレートシステムでは階層にフィルターを適用できます。[[Function_Reference/get_query_template|<tt>get_query_template()</tt>]] 関数内にあるフィルターはファイル名 <tt style="font-weight:bold; color:#036">"{$type}_template"</tt> です。このとき <tt style="font-weight:bold; color:#036">$type</tt> は階層内の拡張子 <tt style="font-weight:bold; color:#036">.php</tt> なしのファイル名。
  
Full list:
+
すべてのリスト:
  
 
* index_template
 
* index_template
381行目: 243行目:
 
* search_template
 
* search_template
 
* single_template
 
* single_template
* text_template, plain_template, text_plain_template (all mime types)
+
* text_template, plain_template, text_plain_template (すべての MIME タイプ)
 
* attachment_template
 
* attachment_template
 
* comments_popup
 
* comments_popup
  
=== Example ===
+
=== 例<!--Example--> ===
  
For example, let's take the default author hierarchy:
+
例として、デフォルトの作成者別階層を以下に挙げます。
  
 
* <tt style="font-weight:bold; color:#036">author-{nicename}.php</tt>
 
* <tt style="font-weight:bold; color:#036">author-{nicename}.php</tt>
393行目: 255行目:
 
* <tt style="font-weight:bold; color:#036">author.php</tt>
 
* <tt style="font-weight:bold; color:#036">author.php</tt>
  
To add <tt style="font-weight:bold; color:#036">author-{role}.php</tt> before <tt style="font-weight:bold; color:#036">author.php</tt> we can manipulate the actual hierarchy using the 'author_template' hook.  This allows a request for /author/username where username has the role of editor to display using author-editor.php if present in the current themes directory.
+
ここで <tt style="font-weight:bold; color:#036">author.php</tt> の前に <tt style="font-weight:bold; color:#036">author-{role}.php</tt> を追加する場合、'author_template' フックを使用して実際の階層を操作できます。/author/username に要求があり、username が編集者権限グループに所属するなら author-editor.php が現在のテーマディレクトリ内で探され、存在すれば表示に使用されます。
  
 
<pre>
 
<pre>
416行目: 278行目:
 
add_filter( 'author_template', 'author_role_template' );
 
add_filter( 'author_template', 'author_role_template' );
 
</pre>
 
</pre>
 
 
  
 
<div id="Changelog">
 
<div id="Changelog">
428行目: 288行目:
 
* [[Version 2.3|2.3]] : [[#Tag_page|タグページ]]を追加。
 
* [[Version 2.3|2.3]] : [[#Tag_page|タグページ]]を追加。
 
* [[Version 2.0|2.0]] : [[#Attachment_display|添付ファイルテンプレート]]を追加。
 
* [[Version 2.0|2.0]] : [[#Attachment_display|添付ファイルテンプレート]]を追加。
* [[Version 1.5|1.5]] :
+
* [[Version 1.5|1.5]] : テーマシステムの導入
** Introduction of the theme system.
+
 
+
  
 
== ソースファイル ==
 
== ソースファイル ==
  
テンプレート階層関数群は {{BrowseSource|wp-includes/theme.php}} にあります。
+
* テンプレート階層関数群は {{BrowseSource|wp-includes/theme.php}} で定義されています。
 +
* テンプレートロード階層は {{Trac|wp-includes/template-loader.php}} で定義されています。
  
* The template-load hierarchy is located in {{Trac|wp-includes/template-loader.php}}.
+
== Plugins ==
  
== Plugins ==
+
* [http://wordpress.org/plugins/what-the-file/ What The File - ページの表示に使用されているファイルやテンプレートの部品を表示するオプションをツールバーに追加する。]
  
* [http://wordpress.org/plugins/what-the-file/ What The File - Adds an option to your toolbar showing what file and template parts are used to display the page]
 
 
<!-- 冒頭のガイドテンプレートで代用
 
<!-- 冒頭のガイドテンプレートで代用
 
==  See also ==
 
==  See also ==
449行目: 307行目:
 
-->
 
-->
  
== Related ==
+
== 関連<!--Related--> ==
  
* [[Theme Development]]
+
* [[テーマの作成]]
* [[The Loop]]
+
* [[ループ]]
* [[Conditional Tags]]
+
* [[条件分岐タグ]]
* [[Template Tags]]
+
* [[テンプレートタグ]]
* [[Using Permalinks]]
+
* [[パーマリンクの使い方]]
  
 
== 外部資料 ==
 
== 外部資料 ==

2015年2月21日 (土) 22:26時点における版

はじめに

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

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

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

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

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

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

条件分岐タグの利用

WordPress がページの種類(クエリタイプ)に合うテンプレートファイルを特定する方法は一つではありません。WordPress テーマ開発者は条件分岐タグを使用して、あるページの生成にどのテンプレートを使うかを制御できます。テーマの中にはここで紹介するすべてのテンプレートファイルを実装しないテーマもありますし、条件分岐タグを使って他のテンプレートファイルを読み込むテーマもあります。より詳細な情報については条件分岐タグおよびテーマの作成ページの「クエリベースのテンプレート」セクションを参照してください。

テンプレートファイルの階層

概念

WordPress はクエリ文字列 — Web サイトの各リンク内に含まれる情報 — を使用して、ページの表示にどのテンプレートあるいはテンプレートの集合を使用すべきかを決定します。

まず WordPress はすべてのクエリ文字列とクエリタイプを照合し、どの種類のページ(検索ページ、カテゴリーページ、ホームページ等) が要求されているかを決定します。

次にテンプレートが選択され — そして、Web ページが生成されます。テンプレートは、WordPress テンプレート階層で規定された順番に、WordPress テーマ内で該当のテンプレートが利用かどうかにより決まります。

WordPress は現在のテーマディレクトリ内から特定のファイル名でテンプレートを探し、以下の該当の節で挙げたリストから最初に見つけたテンプレートファイルを使用します。

基本の index.php テンプレートファイルはテーマに必須ですが、テーマ開発者は他のテンプレートファイルを含めるかどうかを選択できます。 WordPress は 一致する名前のテンプレートファイルが見つからなければそれをスキップして次の候補のファイル名を探します。最後まで一致するテンプレートファイルが見つからなければ index.php (テーマのホームページテンプレートファイル) が使用されます。

例えば、ブログが http://example.com/blog/ にあり、ユーザーがカテゴリーページへのリンク http://example.com/blog/category/your-cat/ をクリックしたとします。WordPress はテンプレート階層を使用して、以下の順番で正しいファイルを探し、生成します。

WordPress は現在のテーマディレクトリ内で、カテゴリーID に合致するテンプレートファイルを探します。

  1. カテゴリーID が 4 なら、WordPress はテンプレートファイル category-4.php を探します。
  2. 見つからなければ、次に WordPress は一般的なカテゴリーテンプレートファイル category.php を探します。
  3. このファイルもなければ、WordPress は一般的なアーカイブテンプレートファイル archive.php を探します。
  4. これもなければ、WordPress はメインテーマテンプレートファイル index.php を使用します。

ユーザーがホームページ http://example.com/blog/ にアクセスすると、以下の順番でテンプレートファイルが決定されます。

  1. WordPress は、まず、静的フロントページがあるかどうかを判断します。静的フロントページが設定されている場合、WordPress は固定ページのテンプレート階層に従ってテンプレートを読み込みます。
  2. 静的フロントページが設定されていない場合、WordPress はテンプレートファイル home.php を探し、これを使用して要求されたページを生成します。
  3. home.php が見つからない場合、WordPress は現在のテーマディレクトリ内でファイル index.php を探し、このテンプレートを使用してページを生成します。

概観図

次の図は WordPress テンプレート階層に基づいて WordPress ページを生成する際、どのテンプレートが呼ばれるかを示します。

WordPress テンプレート階層構造図 Full-Size Image (jpg) - Image courtesy Michelle Schulp at marktimemedia.com

対話式バージョン

テンプレート関連の条件タグや BODY CSS クラスを含む詳細な階層図は こちら を参照。

WordCamp Minneapolis ではちょっと変わったテンプレート階層図が作成された。PDF をダウンロード

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

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

ホームページ表示

サイトフロントページ、または固定ページの上にあるブログ投稿インデックスページの表示に使用されるテンプレートファイル。注意: サイトフロントページ上にある場合、フロントページテンプレートは、ブログ投稿インデックス (ホーム) テンプレートに優先します。

  1. home.php
  2. index.php

フロントページ表示

サイトフロントページの表示に使用されるテンプレートファイル。フロントページはブログ投稿インデックス、または固定ページを表示します。フロントページテンプレートは、ブログ投稿インデックス (ホーム) テンプレートに優先します。

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

個別投稿表示

個別投稿ページの表示に使用されるテンプレートファイル。

  1. single-{post_type}.php - 投稿タイプproduct ならば WordPress は single-product.php を探す。
  2. single.php
  3. index.php

固定ページ表示

固定ページ (page 投稿タイプ) の表示に使用されるテンプレートファイル。

  1. カスタムテンプレートファイル - ページ作成画面の「テンプレート」ドロップダウンメニューで選択したテンプレート名。get_page_templates()参照。
  2. page-{slug}.php - 固定ページのスラッグが recent-news ならば WordPress は page-recent-news.php を探す。
  3. page-{id}.php - 固定ページIDが 6 ならば WordPress は page-6.php を探す。
  4. page.php
  5. index.php

参照: 固定ページ

カテゴリー表示

カテゴリーアーカイブインデックスページの表示に使用されるテンプレートファイル。

  1. category-{slug}.php - カテゴリーのスラッグが news ならば WordPress は category-news.php を探す。
  2. category-{id}.php - カテゴリー ID が 6 ならば WordPress は category-6.php を探す。
  3. category.php
  4. archive.php
  5. index.php

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

タグ表示

タグアーカイブインデックスページの表示に使用されるテンプレートファイル。

  1. tag-{slug}.php - タグのスラッグが sometag ならば WordPress は tag-sometag.php を探す。
  2. tag-{id}.php - タグ ID が 6 ならば WordPress は tag-6.php を探す。
  3. tag.php
  4. archive.php
  5. index.php

参照: タグテンプレート/en

カスタム分類表示

カスタム分類アーカイブインデックスページの表示に使用されるテンプレートファイル。

  1. taxonomy-{taxonomy}-{term}.php - 分類名が sometax、項目が someterm ならば WordPress は taxonomy-sometax-someterm.php を探す。投稿フォーマットの場合、分類名は 'post_format'、項目は 'post_format-{format}'、つまり taxonomy-post_format-post-format-link.php
  2. taxonomy-{taxonomy}.php - 分類名が sometax ならば WordPress は taxonomy-sometax.php を探す。
  3. taxonomy.php
  4. archive.php
  5. index.php

参照: カスタム分類

カスタム投稿タイプ表示

カスタム投稿タイプ アーカイブインデックスページの表示に使用されるテンプレートファイル。

  1. archive-{post_type}.php - 投稿タイプproduct ならば WordPress は archive-product.php を探す。
  2. archive.php
  3. index.php

(カスタム投稿タイプの個別ページを表示する場合は個別投稿表示を参照)

参照: カスタム投稿タイプ

作成者表示

作成者別アーカイブインデックスページの表示に使用されるテンプレートファイル。

  1. author-{nicename}.php - 作成者の nicename がramiならば WordPress は author-rami.php を探す。
  2. author-{id}.php - 作成者の作成者ID が 6 ならば WordPress は author-6.php を探す。
  3. author.php
  4. archive.php
  5. index.php

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

日付別表示

日付別アーカイブインデックスページの表示に使用されるテンプレートファイル。

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


検索結果表示

検索結果インデックスページの表示に使用されるテンプレートファイル。

  1. search.php
  2. index.php

参照: 検索テンプレート

404 (Not Found) 表示

サーバーエラー 404 ページの表示に使用されるテンプレートファイル。

  1. 404.php
  2. index.php

参照: 404 テンプレート

添付ファイル表示

個別添付ファイルページ (attachment 投稿タイプ) の表示に使用されるテンプレートファイル。

  1. {MIME_type}.php - 任意の MIME タイプ (image.php, video.php, application.php)。text/plainならば、以下の順番:
    1. text.php
    2. plain.php
    3. textplain.php
  2. attachment.php
  3. single-attachment.php
  4. single.php
  5. index.php

階層のフィルター

WordPress テンプレートシステムでは階層にフィルターを適用できます。get_query_template() 関数内にあるフィルターはファイル名 "{$type}_template" です。このとき $type は階層内の拡張子 .php なしのファイル名。

すべてのリスト:

  • index_template
  • 404_template
  • archive_template
  • author_template
  • category_template
  • tag_template
  • taxonomy_template
  • date_template
  • home_template
  • front_page_template
  • page_template
  • paged_template
  • search_template
  • single_template
  • text_template, plain_template, text_plain_template (すべての MIME タイプ)
  • attachment_template
  • comments_popup

例として、デフォルトの作成者別階層を以下に挙げます。

  • author-{nicename}.php
  • author-{id}.php
  • author.php

ここで author.php の前に author-{role}.php を追加する場合、'author_template' フックを使用して実際の階層を操作できます。/author/username に要求があり、username が編集者権限グループに所属するなら author-editor.php が現在のテーマディレクトリ内で探され、存在すれば表示に使用されます。

function author_role_template( $templates='' )
{
	$author = get_queried_object();
	$role=$author->roles[0];
	
	if(!is_array($templates) && !empty($templates)) {
		$templates=locate_template(array("author-$role.php",$templates),false);
	} 
	elseif(empty($templates)) {
		$templates=locate_template("author-$role.php",false);
	}
	else {
		$new_template=locate_template(array("author-$role.php"));
		if(!empty($new_template)) array_unshift($templates,$new_template);
	}
	
	return $templates;
}
add_filter( 'author_template', 'author_role_template' );

変更履歴

ソースファイル

Plugins


関連

外部資料

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