●目次
WordPressのテーマ開発において、テンプレート階層の理解は非常に重要です。
テンプレート階層とは、WordPressが特定のページを表示するために使用するテンプレートファイルの選択順序を定めたルールのことです。
これにより、異なるページで異なるデザインを適用したり、特定のページ用にカスタムテンプレートを作成したりすることが可能になります。
テンプレート階層の基本構造
WordPressは、各ページのタイプに応じてテンプレートファイルを選択します。
- ホームページ
- 固定ページ
- 投稿ページ
- 投稿詳細ページ
- アーカイブページ
- 全般アーカイブ
- カテゴリーアーカイブ
- タグアーカイブ
など、ページの種類ごとに異なるテンプレートを使用できます。
以下に、テンプレート階層の基本的な流れを紹介します。
フロントページ(ホームページ)
WordPressのフロントページ(ホームページ)には、以下のテンプレートが順番に適用されます。
front-page.php
(フロントページ専用)home.php
(ブログ投稿一覧ページ)index.php
(デフォルトテンプレート)
フロントページをカスタマイズしたい場合は、front-page.php
を作成し、そのファイル内でカスタマイズを行います。
固定ページ(ページ)
固定ページは、管理画面で作成されたページに対応します。テンプレート階層の順序は次の通りです。
custom-template.php
(ページごとのカスタムテンプレート)page-{slug}.php
(ページのスラッグに対応するテンプレート)page-{ID}.php
(ページのIDに対応するテンプレート)page.php
(固定ページ全般用テンプレート)index.php
(デフォルトテンプレート)
例えば、会社概要ページのスラッグがabout
の場合、page-about.php
というファイルを作成すれば、そのページ専用のデザインを適用できます。
投稿ページ
ブログ投稿には、以下のテンプレート階層が適用されます。
single-{post-type}.php
(カスタム投稿タイプ専用)single.php
(すべての投稿用テンプレート)index.php
(デフォルトテンプレート)
4. アーカイブ・カテゴリー・タグ
カテゴリーやタグページの表示には、以下のテンプレートが使用されます。
category-{slug}.php
(特定のカテゴリー専用)category.php
(すべてのカテゴリー用)tag-{slug}.php
(特定のタグ専用)tag.php
(すべてのタグ用)archive.php
(アーカイブ全般用)index.php
(デフォルトテンプレート)
テンプレートファイルのディレクトリ構造例
テンプレートファイルは、テーマディレクトリ内に配置されます。以下は、一般的なWordPressテーマのディレクトリ構成例です。
ディレクトリ構成
wp_site_theme/
│
├── front-page.php
├── index.php
├── single.php
├── page.php
├── archive.php
├── category.php
├── tag.php
└── assets/
├── css/
├── js/
└── images/