この章では、WordPressのテンプレート階層を学びます。
テンプレート階層とは、WordPressが表示するページに応じて、どのテンプレートファイルを使うかを決める仕組みです。
テンプレート階層とは
WordPressでは、アクセスされたURLの種類によって使うテンプレートが変わります。
たとえば、トップページ、固定ページ、投稿詳細、カテゴリー一覧、検索結果では、使われるテンプレートが違います。
テーマフォルダに専用のテンプレートがあればそれを使い、なければより汎用的なテンプレートへ進みます。
最後の受け皿がindex.phpです。
index.phpの役割
index.phpは、どのテンプレートも見つからない時に使われる最後のテンプレートです。
そのため、クラシックテーマではindex.phpが重要です。
ただし、実務ではトップページ、固定ページ、投稿詳細などを分けるために、専用テンプレートを作ります。
index.phpだけで全部作ると、ページごとの表示を管理しづらくなります。
トップページ
トップページでは、front-page.phpが使われます。
固定ページをトップページに指定していても、front-page.phpがあれば優先されます。
front-page.php
home.php
index.phpコーポレートサイトでは、トップページ専用のデザインを作ることが多いため、front-page.phpを使う場面が多いです。
投稿一覧
投稿一覧ページでは、表示設定やURLによってhome.phpが使われます。
ブログ一覧やお知らせ一覧を作る場合に関係します。
home.php
index.phpトップページと投稿一覧は混同しやすいので注意します。
トップページはfront-page.php、投稿一覧はhome.phpと考えると整理しやすいです。
固定ページ
固定ページでは、page.phpが基本です。
ページごとに専用テンプレートを作ることもできます。
page-about.php
page-12.php
page.php
index.phpたとえば、会社概要ページだけ専用のレイアウトにしたい場合は、ページスラッグやテンプレート機能を使って分けます。
投稿詳細
通常の投稿詳細では、single.phpを使います。
single.php
singular.php
index.phpお知らせ詳細やブログ記事の詳細ページは、single.phpで作ることが多いです。
カスタム投稿タイプでは、single-works.phpのように投稿タイプ名を含めたテンプレートを使えます。
アーカイブ
カテゴリー一覧や日付別一覧など、複数の投稿を一覧表示するページをアーカイブと呼びます。
category-news.php
category.php
archive.php
index.phpアーカイブでは、投稿一覧のHTML構造やページネーションを整えます。
カテゴリーごとに見た目を変えることもできますが、最初はarchive.phpにまとめると理解しやすいです。
検索結果と404
検索結果にはsearch.phpを使います。
ページが見つからない時は404.phpを使います。
search.php
404.php検索結果や404ページは後回しにされがちですが、公開前には最低限の表示を整えておきます。
思ったテンプレートが使われない時
思ったテンプレートが使われない時は、次の点を確認します。
- ファイル名が合っているか
- テーマフォルダに置いているか
- ページスラッグが合っているか
- 表示設定が想定通りか
- パーマリンク設定を保存し直したか
- キャッシュが残っていないか
テンプレート階層を理解すると、原因を探しやすくなります。
この章のまとめ
- テンプレート階層は、ページ種別ごとに使うテンプレートを決める仕組み
index.phpは最後の受け皿- トップページは
front-page.php、固定ページはpage.php、投稿詳細はsingle.phpが基本 - 一覧ページやカテゴリーには
archive.phpやcategory.phpを使う - 思ったテンプレートが使われない時は、ファイル名、表示設定、パーマリンクを確認する