WordPressテンプレート階層の優先順位一覧|トップページ・投稿・固定ページを詳しく解説

WordPressのテンプレート階層で特に重要なのは、「どのページで、どのファイルが優先されるのか」です。

トップページを編集したいのに home.php を触ってしまったり、投稿ページを変えたいのに page.php を編集してしまったりすると、思ったように表示が変わりません。

この記事では、WordPressでよく使うページごとに、テンプレートファイルの優先順位をわかりやすく整理します。

検索キーワードとしては、「WordPress テンプレート階層」「WordPress index.php 役割」「front-page.php home.php 違い」「single.php page.php 違い」などを意識すると、初心者向け記事としても読みやすくなります。

トップページのテンプレート階層

WordPressのトップページでは、front-page.php が最も優先されます。

トップページとは、サイトの一番最初に表示されるページのことです。

たとえば、https://example.com/ にアクセスしたときに表示されるページです。

クラシックテーマの場合、トップページの主な優先順位は次のようになります。

  1. front-page.php
  2. home.php または page.php
  3. index.php

front-page.php が存在する場合、WordPressはトップページで front-page.php を優先的に使います。

「設定」から「表示設定」を開くと、トップページに最新の投稿を表示するか、固定ページを表示するかを選べます。

ただし、front-page.php がある場合は、表示設定に関係なくトップページで優先されます。公式ドキュメントでも、front-pageテンプレートはサイトのフロントページで常に優先されると説明されています。

home.phpはブログ記事一覧ページ

home.php は、名前だけ見るとトップページ用のテンプレートに見えます。

しかし、WordPressにおける home.php は、主にブログ記事一覧ページを表示するテンプレートです。

たとえば、次のようなケースで使われます。

  • トップページに最新の投稿を表示している場合
  • 固定ページをトップページにして、別ページを投稿一覧ページにしている場合

つまり、home.php は「ブログの入口」と考えると分かりやすいです。

サイトのトップページをデザインしたいなら front-page.php、ブログ一覧をデザインしたいなら home.php を確認します。

投稿ページのテンプレート階層

投稿ページとは、通常のブログ記事の個別ページです。

たとえば、ブログ記事「WordPressの始め方」を開いたときのページが投稿ページです。

投稿ページでは、次の順番でテンプレートが探されます。

  1. single-{post-type}-{slug}.php
  2. single-{post-type}.php
  3. single.php
  4. singular.php
  5. index.php

通常の投稿タイプは post なので、投稿スラッグが wordpress-start の場合は、次のような順番になります。

  1. single-post-wordpress-start.php
  2. single-post.php
  3. single.php
  4. singular.php
  5. index.php

多くのテーマでは、通常の投稿ページに single.php が使われます。

カスタム投稿タイプを使う場合は、single-{post-type}.php がよく使われます。

たとえば、カスタム投稿タイプが news の場合は、single-news.php を作ることで、ニュース記事だけ専用のデザインにできます。

WordPress公式ドキュメントでも、個別投稿では single-{post-type}-{slug}.php、single-{post-type}.php、single.php、singular.php、index.php の順に探すと説明されています。

固定ページのテンプレート階層

固定ページとは、「会社概要」「お問い合わせ」「プライバシーポリシー」など、ブログ記事とは別に作るページのことです。

固定ページでは、次の順番でテンプレートが探されます。

  1. カスタムテンプレート
  2. page-{slug}.php
  3. page-{id}.php
  4. page.php
  5. singular.php
  6. index.php

たとえば、固定ページのスラッグが contact、ページIDが 25 の場合は、次の順番になります。

  1. 選択されたカスタムテンプレート
  2. page-contact.php
  3. page-25.php
  4. page.php
  5. singular.php
  6. index.php

お問い合わせページだけデザインを変えたい場合は、page-contact.php を作ると分かりやすいです。

すべての固定ページに共通のデザインを当てたい場合は、page.php を編集します。

single.phpとpage.phpの違い

single.php と page.php は、初心者が混乱しやすいテンプレートです。

single.php は投稿ページに使われます。

page.php は固定ページに使われます。

つまり、ブログ記事のデザインを変えたいなら single.php、会社概要やお問い合わせページを変えたいなら page.php を確認します。

具体例で考えると、次のようになります。

  • ブログ記事「SEO対策の基本」
    使われる可能性が高いテンプレート:single.php
  • 固定ページ「会社概要」
    使われる可能性が高いテンプレート:page.php
  • 固定ページ「お問い合わせ」だけ専用デザインにしたい
    作成するテンプレート:page-contact.php

この違いを理解しておくと、WordPressカスタマイズのミスが減ります。

カテゴリーページのテンプレート階層

カテゴリーページとは、特定のカテゴリーに属する記事一覧ページです。

たとえば、「お知らせ」カテゴリーの記事一覧ページなどです。

カテゴリーページでは、次の順番でテンプレートが探されます。

  1. category-{slug}.php
  2. category-{id}.php
  3. category.php
  4. archive.php
  5. index.php

たとえば、カテゴリーのスラッグが news、カテゴリーIDが 3 の場合は、次の順番です。

  1. category-news.php
  2. category-3.php
  3. category.php
  4. archive.php
  5. index.php

「お知らせ」カテゴリーだけデザインを変えたい場合は、category-news.php を作ります。

すべてのカテゴリーページを共通デザインにしたい場合は、category.php を使います。

カテゴリー、タグ、投稿者、日付などの一覧ページ全体を共通デザインにしたい場合は、archive.php を使います。

タグページのテンプレート階層

タグページは、特定のタグが付いた記事の一覧ページです。

タグページでは、次の順番でテンプレートが探されます。

  1. tag-{slug}.php
  2. tag-{id}.php
  3. tag.php
  4. archive.php
  5. index.php

特定のタグだけデザインを変えたい場合は tag-{slug}.php を作ります。

すべてのタグページを共通デザインにしたい場合は tag.php を使います。

カスタム投稿タイプのテンプレート階層

カスタム投稿タイプとは、通常の投稿や固定ページとは別に作る独自の投稿形式です。

たとえば、以下のようなものです。

  • 実績
  • 商品
  • 店舗情報
  • スタッフ紹介
  • お知らせ

カスタム投稿タイプの個別ページでは、single-{post-type}.php がよく使われます。

たとえば、カスタム投稿タイプが works の場合は、次のようになります。

  • 個別ページ:single-works.php
  • 一覧ページ:archive-works.php

この2つを用意すると、実績ページだけ専用のデザインにできます。

WordPressで企業サイトを作る場合、カスタム投稿タイプとテンプレート階層を組み合わせると、管理しやすいサイト構成を作れます。

検索結果ページのテンプレート階層

WordPressの検索結果ページでは、次の順番でテンプレートが探されます。

  1. search.php
  2. index.php

検索結果ページをカスタマイズしたい場合は、search.php を作成します。

たとえば、検索結果にサムネイル画像、投稿日、カテゴリー、抜粋文を表示したい場合は、search.php を編集します。

search.php がない場合は index.php が使われます。

404ページのテンプレート階層

404ページとは、存在しないURLにアクセスされたときに表示されるページです。

404ページでは、次の順番でテンプレートが探されます。

  1. 404.php
  2. index.php

404ページを丁寧に作ると、ユーザーの離脱を防ぎやすくなります。

たとえば、次のような内容を入れると親切です。

  • ページが見つからないことの説明
  • トップページへのリンク
  • 検索フォーム
  • 人気記事へのリンク
  • カテゴリー一覧

404.php を用意しておくと、存在しないページにアクセスされたときもサイト内回遊につなげやすくなります。

まとめ

WordPressテンプレート階層では、ページの種類ごとに読み込まれるテンプレートファイルが変わります。

トップページは front-page.php、ブログ一覧は home.php、投稿ページは single.php、固定ページは page.php、一覧ページは archive.php、検索結果は search.php、404ページは 404.php が基本です。

初心者が特に覚えるべきなのは、front-page.php と home.php の違いです。

front-page.php はサイトのトップページ、home.php はブログ記事一覧ページです。

この違いを押さえておけば、WordPressテーマの編集で大きく迷うことは少なくなります。