WordPressでサイトを表示する場合はテーマにはいっているテンプレートが表示されます。表示されるページの箇所によってファイル名がきまっています。次のphpファイル名があれば表示が優先されます。
オリジナルコードが記載されたページは、子テーマの中の直下に、該当ファイル名で保存します。
オリジナルの表示ページ作成、PHPファイル名を確認する
ホームページ表示
サイトフロントページ、または固定ページの上にあるブログ投稿インデックスページの表示に使用されるテンプレートファイル。注意: サイトフロントページ上にある場合、フロントページテンプレートは、ブログ投稿インデックス (ホーム) テンプレートに優先します。
- home.php
- index.php
フロントページ表示
サイトフロントページの表示に使用されるテンプレートファイル。フロントページはブログ投稿インデックス、または固定ページを表示します。フロントページテンプレートは、ブログ投稿インデックス (ホーム) テンプレートに優先します。
- front-page.php – 管理 > 設定 > 表示設定 セクションで「フロントページの表示」が「最新の投稿」または「固定ページ」どちらになっている場合でも使われる。
- 固定ページ表示ルール – 管理 > 設定 > 表示設定 セクションの「フロントページの表示」で、「フロントページ」が設定されている場合
- ホームページ表示ルール – 管理 > 設定 > 表示設定 セクションの「フロントページの表示」で、「投稿ページ」が設定されている場合
個別投稿表示
個別投稿ページの表示に使用されるテンプレートファイル。
- single-{post_type}.php – 投稿タイプが product ならば WordPress は single-product.php を探す。
- single.php
- singular.php
- index.php
固定ページ表示
固定ページ (page 投稿タイプ) の表示に使用されるテンプレートファイル。
- カスタムテンプレートファイル – ページ作成画面の「テンプレート」ドロップダウンメニューで選択したテンプレート名。get_page_templates()参照。
- page-{slug}.php – 固定ページのスラッグが recent-news ならば WordPress は page-recent-news.php を探す。
- page-{id}.php – 固定ページIDが 6 ならば WordPress は page-6.php を探す。
- page.php
- singular.php
- index.php
参照: 固定ページ
カテゴリー表示
カテゴリーアーカイブインデックスページの表示に使用されるテンプレートファイル。
- category-{slug}.php – カテゴリーのスラッグが news ならば WordPress は category-news.php を探す。
- category-{id}.php – カテゴリー ID が 6 ならば WordPress は category-6.php を探す。
- category.php
- archive.php
- index.php
参照: カテゴリーテンプレート
タグ表示
タグアーカイブインデックスページの表示に使用されるテンプレートファイル。
- tag-{slug}.php – タグのスラッグが sometag ならば WordPress は tag-sometag.php を探す。
- tag-{id}.php – タグ ID が 6 ならば WordPress は tag-6.php を探す。
- tag.php
- archive.php
- index.php
カスタム分類表示
カスタム分類アーカイブインデックスページの表示に使用されるテンプレートファイル。
- taxonomy-{taxonomy}-{term}.php – 分類名が sometax、項目が someterm ならば WordPress は taxonomy-sometax-someterm.php を探す。投稿フォーマットの場合、分類名は ‘post_format’、項目は ‘post_format-{format}’、つまり taxonomy-post_format-post-format-link.php 。
- taxonomy-{taxonomy}.php – 分類名が sometax ならば WordPress は taxonomy-sometax.php を探す。
- taxonomy.php
- archive.php
- index.php
参照: カスタム分類
カスタム投稿タイプ表示
カスタム投稿タイプ アーカイブインデックスページの表示に使用されるテンプレートファイル。
- archive-{post_type}.php – 投稿タイプ が product ならば WordPress は archive-product.php を探す。
- archive.php
- index.php
(カスタム投稿タイプの個別ページを表示する場合は個別投稿表示を参照)
参照: カスタム投稿タイプ
作成者表示
作成者別アーカイブインデックスページの表示に使用されるテンプレートファイル。
- author-{nicename}.php – 作成者の nicename がramiならば WordPress は author-rami.php を探す。
- author-{id}.php – 作成者の作成者ID が 6 ならば WordPress は author-6.php を探す。
- author.php
- archive.php
- index.php
日付別表示
日付別アーカイブインデックスページの表示に使用されるテンプレートファイル。
- date.php
- archive.php
- index.php
検索結果表示
検索結果インデックスページの表示に使用されるテンプレートファイル。
- search.php
- index.php
参照: 検索テンプレート
404 (Not Found) 表示
サーバーエラー 404 ページの表示に使用されるテンプレートファイル。
- 404.php
- index.php
参照: 404 テンプレート
添付ファイル表示
個別添付ファイルページ (attachment 投稿タイプ) の表示に使用されるテンプレートファイル。
- {MIME_type}.php – 任意の MIME タイプ (image.php, video.php, application.php)。text/plainならば、以下の順番:
- text.php
- plain.php
- textplain.php
- attachment.php
- single-attachment.php
- single.php
- index.php
Embeds
embed テンプレートファイルは embed 機能で埋め込まれる投稿のレンダリングに使用されます。Version 4.5 から WordPress は次の順序を使用します。
- embed-{post-type}-{post_format}.php – まず WordPress は特定の投稿に関するテンプレートを探します。例えば 投稿タイプが「product」で、「音声(audio)」フォーマットを持つ場合 WordPress は「embed-product-audio.php」を探します。
- embed-{post-type}.php – 投稿タイプが「car」であれば WordPress は「embed-car.php」を探します。
- embed.php – そして WordPress は「embed.php」に落ちます。
- どのテンプレートファイルも見つからなければ最後に WordPress は wp-includes/theme-compat/embed.php を使用します。
階層のフィルター
WordPress テンプレートシステムでは階層にフィルターを適用できます。get_query_template() /en 関数内にあるフィルターはファイル名 “{$type}_template” です。このとき $type は階層内の拡張子 .php なしのファイル名。
すべてのリスト:
- index_template
- 404_template
- archive_template
- author_template
- category_template
- tag_template
- taxonomy_template
- date_template
- home_template
- frontpage_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' );