WEB STUDIES

もっともっと、もっと先へ。株式会社アットワークMore and more,
further and further.

Tips

2022年6月6日

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}.phpCPT詳細
archive-{posttype}.phpCPT一覧

⑦ テンプレート階層の動作イメージ

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に応じて最適なテンプレートを自動選択するルール」です。より具体的なテンプレートほど優先される構造はテーマ構造を設計には必須となりますので、このルールはしっかり学びましょう。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です


一覧に戻る