【WP】テンプレートとテンプレート階層
WordPress のテンプレートとは
テンプレートとはひな形のことで、WordPressでは、アクセスされたページの役割に応じて、表示するテンプレートファイルが自動的に選択されます。
例えば、WordPressには次のようなテンプレートが用意されています。
ページの種類 | テンプレート | 概要 |
---|---|---|
テーマの必須ファイル | index.php | 他に適切なテンプレートが存在しない場合に最終的に使用されるファイル(最も汎用的なテンプレート) |
フロントページ | front-page.php | サイトのトップページを出力 |
ホーム(メイン)ページ | home.php | ブログのトップページを出力 |
固定ページ | page.php | 個々の固定ページを出力 |
投稿 | single.php | 個々の投稿ページを出力 |
カテゴリー | category.php | カテゴリーごとのアーカイブ(一覧)ページを出力 |
タグ | tag.php | タグごとのアーカイブ(一覧)ページを出力 |
作成者 | author.php | 作成者別のアーカイブ(一覧)ページを出力 |
日付 | date.php | 日付ごとのアーカイブ(一覧)ページを出力 |
アーカイブ | archive.php | アーカイブ(一覧)ページを出力 |
検索結果 | search.php | 検索結果のページを出力 |
404 (Not Found) | 404.php | 404エラー(Not Found)ページを出力 |
テンプレートとテーマの違い
テーマとは、複数のテンプレートファイル、スタイルシート、JavaScriptなどをまとめたファイル群です。
テンプレートは、テーマのファイル群の一部です。
WordPress のテンプレート階層とは
複数のテンプレートの中から、優先順位が高いものを選択する仕組みを「テンプレート階層」と呼びます。
投稿のページを例にすると、
1. テーマの中に single-post_type.php というテンプレートがあればそのテンプレートを使って出力
2. なければ single.php というテンプレートを使って出力
3. single-post_type.php も single.php もなければsingular.php というテンプレートを使って出力
4. いずれもなければ、index.php を使って出力
というテンプレート階層となっています。
ページ | テンプレートファイルの優先順位 高い ← 優先度 → 低い |
|||||
---|---|---|---|---|---|---|
フロントページ | front-page.php | トップページ 参照 |
トップページ 参照 |
– | index.php | |
ホームページ | home.php | – | – | – | ||
固定ページ | customname.php | page-slug.php | page-id.php | page.php | singular.php | |
投稿 | single-post_type.php | – | – | single.php | ||
投稿タイプ別一覧 | archive-post_type.php | – | – | archive.php | ||
タグ別一覧 | tag-slug.php | tag-id.php | tag.php | |||
日付別一覧 | date.php | – | – | |||
記事作成者別一覧 | author-nicename.php | author-id.php | author.php | |||
カスタム分類 | taxonomy-taxonomy–term.php | taxonomy-taxonomy.php | taxonomy.php | |||
カテゴリ別一覧 | category-slug.php | category-id.php | category.php | |||
検索結果 | search.php | – | – | – | ||
404 | 404.php | – | – | – |
トップページのテンプレート優先順位
1. front-page.php
2. home.php
3. index.php
管理画面 >「設定」>「表示設定」の「ホームページの表示」で [固定ページ] を選択している場合
front-page.php が存在する場合は、固定ページを選択している場合でも、front-page.php が優先されます。
front-page.php が存在せず、home.php、index.php のみ存在する場合は固定ページが優先されます。