@ WordPress

テンプレートファイル

テンプレートとは、Web 上で WordPress サイトをどのように表示させるかをコントロールするファイルです。

WordPressのテーマを構成しているファイルのことをテンプレートファイルと言います。

テンプレートファイルにはheader.php や footer.php、sidebar.php など、複数のページで共有するパーツを管理するための「モジュールテンプレート(パーツテンプレートファイル)」と、single.phpやarchive.phpのようにある条件の下でのみ使用されるファイルがあります。

WordPress Codex : テンプレート

おもなモジュールテンプレート(パーツテンプレート)ファイル

header.php
ヘッダ出力用のテンプレート。<?php get_header(); ?>でheader.phpをインクルードします。
footer.php
フッター出力用のテンプレート。<?php get_footer();?>でfooter.phpをインクルードします。
sidebar.php
サイドバー出力用のテンプレート。<?php get_sidebar(); ?>でsidebar.phpをインクルードします。
searchform.php
検索フォーム出力用のテンプレート。<?php get_search_form(); ?>でsearchform.phpをインクルードします。
comments.php
コメント出力用のテンプレート。<?php comments_template(); ?>でcomments.phpをインクルードします。

その他のおもなテンプレートファイル

index.php(必須)
メインテンプレート。テンプレート階層においてどのテンプレートファイルも存在しない場合使われる。
single.php
投稿(カスタム投稿タイプ)の個別表示用テンプレート。
page.php
固定ページ用の個別表示用テンプレート。
404.php
テンプレート。存在しないページを要求された時に表示される。
archive.php
アーカイブ(カテゴリーやタグ(カスタム分類)、日別、著者)用テンプレート。
image.php
アップロードしたメディアのうち画像を単体で表示するテンプレート。
search.php
検索結果表示用テンプレート。
archive.php
アーカイブ(カテゴリーやタグ(カスタム分類)、日別、著者)用テンプレート。

WordPress Codex : テンプレート入門

テンプレート階層

WordPressでは、表示を要求されたページのURLからページの種類を判断し、その種類に応じてどのテンプレートファイルを使うかを優先順位にしたがって決定します。この優先順位となるのがテンプレート階層です。

WordPress Codex : テンプレート階層

例えば、ブログが http://example.com/blog/ にあり、ユーザーがカテゴリーページへのリンク http://example.com/blog/category/your-cat/ をクリックしたとします。

WordPress はテンプレート階層を使用して、以下の順番で正しいファイルを探し、生成します。

  1. WordPress は現在のテーマディレクトリ内で、カテゴリーID に合致するテンプレートファイルを探します。
  2. カテゴリーID が 4 なら、WordPress はテンプレートファイル category-4.php を探します。
  3. 見つからなければ、次に WordPress は一般的なカテゴリーテンプレートファイル category.php を探します。
  4. このファイルもなければ、WordPress は一般的なアーカイブテンプレートファイル archive.php を探します。
  5. これもなければ、WordPress はメインテーマテンプレートファイル index.php を使用します。

ユーザーがホームページ http://example.com/blog/ にアクセスすると、以下の順番でテンプレートファイルが決定されます。

  1. WordPress は、まず、静的フロントページがあるかどうかを判断します。
  2. 静的フロントページが設定されている場合、WordPress は固定ページのテンプレート階層に従ってテンプレートを読み込みます。
  3. 静的フロントページが設定されていない場合、WordPress はテンプレートファイル home.php を探し、これを使用して要求されたページを生成します。
  4. home.php が見つからない場合、WordPress は現在のテーマディレクトリ内でファイル index.php を探し、このテンプレートを使用してページを生成します。
ページの種類 高←テンプレート階層優先度→低
作者アーカイブ author-{nicename}.php author-{id}.php author.php archive.php index.php
カテゴリーアーカイブ category-{slug}.php category-{id}.php category.php
カスタム投稿タイプアーカイブ taxonomy-{taxonomy}-{term}.php taxonomy-{taxonomy}.php taxonomy.php
カスタムタグソノミーアーカイブ category-{slug}.php category-{id}.php category.php
日付アーカイブ tag-{slug}.php tag-{id}.php tag.php
タグアーカイブ author-{nicename}.php author-{id}.php author.php
日付別アーカイブ date.php
添付ファイル投稿 archive-{post_type}.php
カスタム投稿 single-{post_type}.php single.php
ブログ投稿 single-post.php
固定ページ カスタムページテンプレート page-{slug}.php page-{id}.php page.php
サイトフロントページ front-page.php 固定ページ表示ルール ホームページ表示ルール home.php
ブログ投稿インデックスページ home.php
コメントポップアップページ comments-popup.php
404エラーページ 404.php
検索結果ページ search.php

カスタムページテンプレート

カスタムページテンプレートは複数のページで使用できます。固定ページでページによってテンプレートを変えたい場合に、カスタムページテンプレートを作成します。

カスタムページテンプレートを作成すると、固定ページの編集画面で使用するテンプレートを選択できます。

新規カスタムページテンプレートの作成

カスタムページテンプレートを作成するには新しいファイルを作成し、PHP コメントの「Template Name」で開始します。

ファイルの先頭に以下のように記述して、mypage.php(任意のファイル名)という名前で保存して、テーマのディレクトリ内に置きます。

mypage.php

<?php
/*
Template Name: 私のカスタムページ
*/

カスタムページテンプレートを固定ページに適用する

ページの編集画面で、適用するテンプレートを選択します。
通常は「デフォルトテンプレート」が選択されているので、選択リストから使用したいカスタムテンプレートを選んでページを保存します。

WordPress Codex : カテゴリーテンプレート