シリーズ:WordPressの基本
目次
✅ 基本的なルール(テンプレート階層)
WordPressには「テンプレート階層」というルールがあり、表示されるページに応じてテーマファイルが自動的に選ばれます。
ホーム画面に使われるテンプレートファイルの優先順位
WordPressの「設定 → 表示設定」で
「ホームページの表示:固定ページ」「最新の投稿」のどちらにしているかどうかで分岐します。
① 「固定ページ」をホームに設定した場合
この場合、以下の順でテンプレートが探されます:
front-page.php
← 一般的にこれを用意するhome.php
page.php
index.php
② 「最新の投稿」をホームに設定した場合
この場合は投稿の一覧なので:
home.php
index.php
✅ おすすめの使い分け
ファイル名 | 用途の例 | 備考 |
---|---|---|
front-page.php | サイトのトップページ | 固定ページをトップにした場合、最も優先される |
home.php | ブログ投稿一覧ページ | 「投稿ページ」に指定した固定ページの表示に使われる |
index.php | 最終手段的なテンプレート | 他に該当ファイルがないときに使われる |
実装アドバイス
front-page.php
を用意し、トップページのHTMLを書きます。- 投稿一覧用に
home.php
を別途用意しておくと便利です。 index.php
はあくまで最終手段としてシンプルに残しておくのがベターです。
home.php
と archive.php
は、どちらも投稿一覧を表示するテンプレートですが、用途や表示対象が異なります。初心者向けに図式と例を使って、わかりやすく解説します。
✅ 結論:違いの概要
ファイル名 | 対象 | 主な使い道 |
---|---|---|
home.php | 投稿のトップページ(投稿一覧) | ブログのトップページなど |
archive.php | カテゴリ・タグ・日付・カスタム投稿の一覧 | 特定条件で絞られた投稿一覧表示 |
1. home.php
の役割
表示対象: 投稿の一覧ページ(通常「ブログ一覧ページ」)
- WordPress管理画面の「設定 → 表示設定」で「ホームページの表示」に「最新の投稿」を設定している場合、このテンプレートが使われます。「最新の”投稿”」を設定しているのでfront-page.phpではなく、home.phpを参照します。
- または、「固定ページ → 投稿ページ」に特定のページを割り当てた場合も、そのページ表示に使われます。
✅ 例:
URL: https://example.com/blog
表示内容:最新の投稿記事10件など
使われるテンプレート:home.php
2. archive.php
の役割
表示対象: 特定条件で絞られた投稿一覧
- カテゴリー別一覧(例:
/category/news/
) - タグ別一覧(例:
/tag/tech/
) - 日付別一覧(例:
/2024/05/
) - カスタム投稿タイプの一覧(例:
/products/
)
✅ 例:
URL: https://example.com/category/news
表示内容:「news」カテゴリーに属する投稿一覧
使われるテンプレート:archive.php
使い分けのイメージ図(簡略化)
ユーザーがアクセスするURL → 呼び出されるテンプレート
-----------------------------------------------------
https://example.com/blog → home.php
https://example.com → front-page.php(または index.php)
https://example.com/category/xx → archive.php
https://example.com/tag/xx → archive.php
https://example.com/2024/05 → archive.php
補足:テンプレート階層(優先順位)
WordPressは詳細にテンプレートファイルを探すので、条件に応じて下記のようなファイルがあればそちらが使われます。
例)カテゴリー「news」の一覧
探される順番:
category-news.php
(あれば最優先)category.php
archive.php
index.php
開発時のポイント
home.php
:ブログ一覧として独立デザインにしたいときに用意する。archive.php
:カテゴリやタグなどの一覧を共通デザインで表示したいときに使う。- それぞれ
get_header()
やget_footer()
で共通パーツを読み込むのがベスト。