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/ にアクセスしたときに表示されるページです。
クラシックテーマの場合、トップページの主な優先順位は次のようになります。
- front-page.php
- home.php または page.php
- 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の始め方」を開いたときのページが投稿ページです。
投稿ページでは、次の順番でテンプレートが探されます。
- single-{post-type}-{slug}.php
- single-{post-type}.php
- single.php
- singular.php
- index.php
通常の投稿タイプは post なので、投稿スラッグが wordpress-start の場合は、次のような順番になります。
- single-post-wordpress-start.php
- single-post.php
- single.php
- singular.php
- 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 の順に探すと説明されています。
固定ページのテンプレート階層
固定ページとは、「会社概要」「お問い合わせ」「プライバシーポリシー」など、ブログ記事とは別に作るページのことです。
固定ページでは、次の順番でテンプレートが探されます。
- カスタムテンプレート
- page-{slug}.php
- page-{id}.php
- page.php
- singular.php
- index.php
たとえば、固定ページのスラッグが contact、ページIDが 25 の場合は、次の順番になります。
- 選択されたカスタムテンプレート
- page-contact.php
- page-25.php
- page.php
- singular.php
- 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カスタマイズのミスが減ります。
カテゴリーページのテンプレート階層
カテゴリーページとは、特定のカテゴリーに属する記事一覧ページです。
たとえば、「お知らせ」カテゴリーの記事一覧ページなどです。
カテゴリーページでは、次の順番でテンプレートが探されます。
- category-{slug}.php
- category-{id}.php
- category.php
- archive.php
- index.php
たとえば、カテゴリーのスラッグが news、カテゴリーIDが 3 の場合は、次の順番です。
- category-news.php
- category-3.php
- category.php
- archive.php
- index.php
「お知らせ」カテゴリーだけデザインを変えたい場合は、category-news.php を作ります。
すべてのカテゴリーページを共通デザインにしたい場合は、category.php を使います。
カテゴリー、タグ、投稿者、日付などの一覧ページ全体を共通デザインにしたい場合は、archive.php を使います。
タグページのテンプレート階層
タグページは、特定のタグが付いた記事の一覧ページです。
タグページでは、次の順番でテンプレートが探されます。
- tag-{slug}.php
- tag-{id}.php
- tag.php
- archive.php
- index.php
特定のタグだけデザインを変えたい場合は tag-{slug}.php を作ります。
すべてのタグページを共通デザインにしたい場合は tag.php を使います。
カスタム投稿タイプのテンプレート階層
カスタム投稿タイプとは、通常の投稿や固定ページとは別に作る独自の投稿形式です。
たとえば、以下のようなものです。
- 実績
- 商品
- 店舗情報
- スタッフ紹介
- お知らせ
カスタム投稿タイプの個別ページでは、single-{post-type}.php がよく使われます。
たとえば、カスタム投稿タイプが works の場合は、次のようになります。
- 個別ページ:single-works.php
- 一覧ページ:archive-works.php
この2つを用意すると、実績ページだけ専用のデザインにできます。
WordPressで企業サイトを作る場合、カスタム投稿タイプとテンプレート階層を組み合わせると、管理しやすいサイト構成を作れます。
検索結果ページのテンプレート階層
WordPressの検索結果ページでは、次の順番でテンプレートが探されます。
- search.php
- index.php
検索結果ページをカスタマイズしたい場合は、search.php を作成します。
たとえば、検索結果にサムネイル画像、投稿日、カテゴリー、抜粋文を表示したい場合は、search.php を編集します。
search.php がない場合は index.php が使われます。
404ページのテンプレート階層
404ページとは、存在しないURLにアクセスされたときに表示されるページです。
404ページでは、次の順番でテンプレートが探されます。
- 404.php
- 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テーマの編集で大きく迷うことは少なくなります。
