Roa run dev

WordPressのテンプレート階層を理解する!【基本】

●目次

    WordPressのテーマ開発において、テンプレート階層の理解は非常に重要です。
    テンプレート階層とは、WordPressが特定のページを表示するために使用するテンプレートファイルの選択順序を定めたルールのことです。
    これにより、異なるページで異なるデザインを適用したり、特定のページ用にカスタムテンプレートを作成したりすることが可能になります。

    テンプレート階層の基本構造

    WordPressは、各ページのタイプに応じてテンプレートファイルを選択します。

    • ホームページ
    • 固定ページ
    • 投稿ページ
      • 投稿詳細ページ
    • アーカイブページ
      • 全般アーカイブ
      • カテゴリーアーカイブ
      • タグアーカイブ

    など、ページの種類ごとに異なるテンプレートを使用できます。
    以下に、テンプレート階層の基本的な流れを紹介します。

    フロントページ(ホームページ)

    WordPressのフロントページ(ホームページ)には、以下のテンプレートが順番に適用されます。


    1. front-page.php(フロントページ専用)
    2. home.php(ブログ投稿一覧ページ)
    3. index.php(デフォルトテンプレート)

    フロントページをカスタマイズしたい場合は、front-page.phpを作成し、そのファイル内でカスタマイズを行います。

    固定ページ(ページ)

    固定ページは、管理画面で作成されたページに対応します。テンプレート階層の順序は次の通りです。


    1. custom-template.php(ページごとのカスタムテンプレート)
    2. page-{slug}.php(ページのスラッグに対応するテンプレート)
    3. page-{ID}.php(ページのIDに対応するテンプレート)
    4. page.php(固定ページ全般用テンプレート)
    5. index.php(デフォルトテンプレート)

    例えば、会社概要ページのスラッグがaboutの場合、page-about.phpというファイルを作成すれば、そのページ専用のデザインを適用できます。

    投稿ページ

    ブログ投稿には、以下のテンプレート階層が適用されます。


    1. single-{post-type}.php(カスタム投稿タイプ専用)
    2. single.php(すべての投稿用テンプレート)
    3. index.php(デフォルトテンプレート)

    4. アーカイブ・カテゴリー・タグ

    カテゴリーやタグページの表示には、以下のテンプレートが使用されます。


    1. category-{slug}.php(特定のカテゴリー専用)
    2. category.php(すべてのカテゴリー用)
    3. tag-{slug}.php(特定のタグ専用)
    4. tag.php(すべてのタグ用)
    5. archive.php(アーカイブ全般用)
    6. 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/