08. テンプレート階層

この章では、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を使います。

検索結果と404
search.php
404.php

検索結果や404ページは後回しにされがちですが、公開前には最低限の表示を整えておきます。

思ったテンプレートが使われない時

思ったテンプレートが使われない時は、次の点を確認します。

  • ファイル名が合っているか
  • テーマフォルダに置いているか
  • ページスラッグが合っているか
  • 表示設定が想定通りか
  • パーマリンク設定を保存し直したか
  • キャッシュが残っていないか

テンプレート階層を理解すると、原因を探しやすくなります。

この章のまとめ

  • テンプレート階層は、ページ種別ごとに使うテンプレートを決める仕組み
  • index.phpは最後の受け皿
  • トップページはfront-page.php、固定ページはpage.php、投稿詳細はsingle.phpが基本
  • 一覧ページやカテゴリーにはarchive.phpcategory.phpを使う
  • 思ったテンプレートが使われない時は、ファイル名、表示設定、パーマリンクを確認する