WordPress
テンプレート
投稿などのデータベースに格納されたデータをテンプレート(ページの雛形)を使って出力・表示します。
テンプレートファイルは HTML、PHP、テンプレートタグで構成されています。
アクセスされたページに合わせて、表示するテンプレートファイルが自動的に選択されるようになっています。(テンプレートからページへの変換)
1つのテーマには複数のテンプレートを入れてページの種類によって使い分けることができます。
テンプレートの名前(ファイル名)は WordPress が定めたルールがあり以下のようなテンプレートがあります(一部抜粋)。
テンプレートの例
| ページの種類 | テンプレート | 概要 |
|---|---|---|
| テーマの必須ファイル | index.php | 他に適切なテンプレートが存在しない場合に最終的に使用されるファイル(最も汎用的なテンプレート) |
| フロントページ | front-page.php | サイトのトップページを出力 |
| ホーム(メイン)ページ | home.php | ブログのトップページを出力 |
| 固定ページ | page.php | 個々の固定ページを出力 |
| 投稿 | single.php | 個々の投稿のページを出力 |
| カテゴリー | category.php | カテゴリーごとのアーカイブ(一覧)ページを出力 |
| タグ | tag.php | タグごとのアーカイブ(一覧)ページを出力 |
| 作成者 | author.php | 作成者別のアーカイブ(一覧)ページを出力 |
| 日付 | date.php | 日付ごとのアーカイブ(一覧)ページを出力 |
| アーカイブ | archive.php | アーカイブ(一覧)ページを出力 |
| 検索フォーム | searchform.php | 検索フォームのページ |
| 検索結果 | search.php | 検索結果のページを出力 |
| 404 (Not Found) | 404.php | 404エラー(Not Found)ページを出力 |
| 共通 | header.php footer.php sidebar.php |
全ページ共通で使用 (ヘッダー、フッター、サイドバー) |
テンプレート階層
アクセスされたURLをもとに、各ページをテンプレートに基づいて出力します
その際に、複数のテンプレートの中から優先順位が高いものを選択する仕組みを「テンプレート階層(Template Hierarchy)」と呼びます
WordPress Codex(日本語版):テンプレート階層
例えば、個々の投稿のページはテーマの中に single-post_type.php と言うテンプレートが含まれていれば、そのテンプレートを使って出力しますが、single-post_type.php がない場合は、single.php というテンプレートを使って出力します。single-post_type.php も single.php もなければ singular.php というテンプレートを使います(singular.php は Version 4.3 以降)。いずれのテンプレートもなければ、index.php を使って出力します。
テンプレートファイルの優先順位
左側ほど優先順位が高いテンプレートになります。
右側にあるほど優先順位は低くなり、逆に適用されるページの種類が多くなります。
single-post_type.php は投稿専用のテンプレートですが、singular.php は投稿だけではなく、固定ページのテンプレートにも含まれます。もし、投稿と固定ページの構造がほぼ同じ場合、singular.php で投稿と固定ページの両方を出力するというようなことが可能です。
※テーマを作成する際は、テンプレート階層を理解して、作成するサイトの構造に合う適切なテンプレートを選択することがとても大切です。
| ページの種類 条件分岐タグ |
高い ← 優先度 → 低い | |||||
|---|---|---|---|---|---|---|
| フロントページ is_front_page |
front-page.php | index.php | ||||
| ホームページ is_home |
home.php | |||||
| カテゴリー is_category |
category-slug.php | category-id.php | category.php | archive.php | ||
| タグ is_tag |
tag-slug.php | tag-id.php | tag.php | |||
| カスタム分類 is_tax |
taxonomy-taxonomy-term.php | taxonomy-taxonomy.php | taxonomy.php | |||
| 作成者 is_author |
author-nicename.php | author-id.php | author.php | |||
| 日付 is_date,is_day is_month is_year |
date.php | |||||
| アーカイブ is_archive is_post_type_archive |
archive-post_type.php | |||||
| 検索結果 is_search |
search.php | |||||
| 404 (Not Found) is_404 |
404.php | |||||
| 固定ページ is_pageis_singular |
customname.php (カスタムページテンプレート) |
page-slug.php | page-id.php | page.php | singular.php ※ |
|
| 投稿/カスタム投稿 is_single is_singular |
single-post_type.php | single.php | ||||
| 添付ファイル is_attachment is_singular |
MIME_type.php image.php video.php audio.php application.php |
attachment.php | single-attachment.php | |||