Tips

WordPressのテンプレート階層
WordPressのテンプレート階層(Template Hierarchy)とは
テンプレート階層とは、WordPressが「どのPHPファイルを使って表示するか」を決定する優先順位ルールです。
アクセスされたURLに応じて、より具体的なテンプレートから汎用テンプレートの順で探します。
ここでは、WordPressのテンプレート階層について解説します。
基本構造
WordPressは、常により具体的なファイル → なければ汎用へフォールバックしていき、最終的には必ず、index.phpに到達します。表示すべきテンプレートがない場合、index.phpがブラウザに表示されます。
投稿(single)の階層
例)投稿ID 15 の投稿
縦に並んだ.phpファイルの上から下の順番に読み込みが試されます。一番上のファイルが一番優先度が高く、徐々に優先順位が下がります。
single-post-15.php
single-post.php
single.php
singular.php
index.php例)カスタム投稿タイプ news
single-news.php
single.php
singular.php
index.php固定ページ(page)の階層
例)スラッグ about
page-about.php
page-10.php(ID指定)
page.php
singular.php
index.phpアーカイブページ
投稿タイプ news
archive-news.php
archive.php
index.phpカテゴリー blog
category-blog.php
category-3.php
category.php
archive.php
index.phpタグ
tag-design.php
tag.php
archive.php
index.phpフロントページ
設定によって変わります。管理画面で混乱するポイントです。
「最新の投稿」の場合
home.php
index.php「固定ページ」を設定した場合
front-page.php
page.php
index.php検索・404
search.php
404.phpなければ index.php
実務で最も重要なテンプレート
| ファイル | 用途 |
| index.php | 最終フォールバック |
| single.php | 投稿詳細 |
| page.php | 固定ページ |
| archive.php | アーカイブ共通 |
| single-{posttype}.php | CPT詳細 |
| archive-{posttype}.php | CPT一覧 |
⑦ テンプレート階層の動作イメージ
URLが/news/sample-post/の場合、WordPressは次の順で探して、存在した最初のファイルが表示されます。
single-news.php
single.php
singular.php
index.phpなぜ理解が重要か
- ファイルが読まれない原因の特定するため。
- カスタム投稿で表示が変わらない問題を解決するため。
- 最適なテーマ構造を設計するため。
よくあるミス
- single-{posttype}.phpを作っていない
- archive-{posttype}.phpを忘れる
- front-page.phpとhome.phpの違いを誤解
- パーマリンク設定を保存していない
実務設計の考え方
過剰に分割しすぎないのが保守性の上で重要です。必要に応じて下記phpファイルの他に、CPT専用テンプレートが加わります。
index.php
archive.php
single.php
page.phpまとめ
テンプレート階層は「URLに応じて最適なテンプレートを自動選択するルール」です。より具体的なテンプレートほど優先される構造はテーマ構造を設計には必須となりますので、このルールはしっかり学びましょう。

コメントを残す