[WordPress] テンプレートファイルの階層・優先順位

  WordPress ,

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る
wordpress theme テーマ 作成 PHP

WordPress では PHP ファイルである「テンプレート」を用いてテーマが構成されて、ブラウザにWEBサイトとして表示されます。 index.php のように WordPress のテーマ構成に必須のテンプレートファイルが必要だったりします。そこで今回は、テンプレートファイルの階層・優先順位についてご紹介したいと思います。

テンプレートとは?

WordPress Codex 日本語版には下記のように説明されています。

テンプレートとは、Web 上で WordPress サイトをどのように表示させるかをコントロールするファイルです。テンプレートファイルは WordPress の MySQL データベースより情報を取得し、Web ブラウザへ送る HTML コードを生成します。WordPress では、強力なテーマシステムによって、好きな数のテンプレートファイルをすべてひとつのテーマ内で定義できるようになっています。各テンプレートファイルは特定の状況のみで使われるように設定できます。

テンプレート – WordPress Codex 日本語版

要するに、テンプレートとは WordPress 上で WEB サイトを表示させるファイルのことです。
具体的に言いかえると、皆さんがテンプレートに対するお持ちの「少ない修正で済む雛形のようなもの」というイメージのように、例えばブログの投稿のようなタイトルと文章の入力のみで運営できるように、デザインなどをテンプレート化(テーマ化)することで WordPress 上で共通のパーツを共有するものがテンプレートであると言えます。

必須テンプレート・ファイル

WordPress を使用する際にはテーマを適応させますが、そのテーマに必ず必要なファイルは下記のファイルとなっています。

  • index.php:トップページ表示用のテンプレートファイル
  • single.php:個別投稿記事表示用のテンプレートファイル
  • style.css:サイトデザイン用のスタイルシートファイル

テンプレートの構成と種類と優先順位

WordPress のテンプレートにはさまざまな種類があり、それぞれに役割があります。
下記に主要なテンプレートを示したいと思います。

  • index.php
    該当するPHPのテンプレートがない場合表示されるテンプレートファイル
  • home.php
    管理画面の表示設定の「フロントページ」で選択されている固定ページが優先的に表示されるトップページ表示用のテンプレートファイル
  • front-page.php
    管理者画面の表示設定の「フロントページ」で何を選択していても影響を受けないトップページ表示用のテンプレートファイル
  • single.php
    個別投稿記事表示用のテンプレートファイル
  • page.php
    固定ページ表示用のテンプレートファイル
  • archive.php
    アーカイブページ表示用のテンプレートファイル
  • category.php
    カテゴリー別アーカイブページ表示用のテンプレートファイル
  • tag.php
    タグ別アーカイブページ表示用のテンプレートファイル
  • author.php
    著者別アーカイブページ表示用のテンプレートファイル
  • date.php
    日付別アーカイブページ表示用のテンプレートファイル
  • search.php
    検索結果ページ表示用のテンプレートファイル
  • 404.php
    404(file not found)ページ表示用のテンプレートファイル
  • taxonomy.php
    カスタム分類別アーカイブページ表示用のテンプレートファイル

WordPress のテンプレートには種類によって適応される優先順位があり、それをもとにWEBサイトの表示を行います。
下記に各種類においてのテンプレートの優先順位をまとめたものを示したいと思います。

ページの種類 高←テンプレート階層優先度→低
トップページ home.php index.php
フロントページ front-page.php index.php
固定ページ ページテンプレート.php page-{slug}.php page-{id}.php page.php index.php
個別投稿ページ single-post.php single.php index.php
カスタム投稿ページ single-{post_type}.php single.php index.php
カスタム分類アーカイブ taxonomy-{taxonomy}-{term}.php taxonomy-{taxonomy}.php taxonomy.php archive.php index.php
カスタム投稿タイプアーカイブ archive-{post_type}.php archive.php index.php
カテゴリーアーカイブ category-{slug}.php category-{id}.php category.php archive.php index.php
タグアーカイブ tag-{slug}.php tag-{id}.php tag.php archive.php index.php
著者アーカイブ author-{nicename}.php author-{id}.php author.php archive.php index.php
日付別アーカイブ date.php archive.php index.php
404エラーページ 404.php index.php
検索結果ページ search.php index.php
添付ファイル image.php, video.php, application.php attachment.php single-attachment.php single.php index.php
  • {slug}スラッグは各記事に設定されたページ名(URL)の最後の部分
  • {id}は各記事や作成者などに割り振られたID・数字
  • {nicename}はユーザーで設定した投稿者のユーザー名
  • {post_type}は投稿タイプ・カスタム投稿タイプに対応したテンプレート名
  • {taxonomy}はカスタムタクソノミー(カスタム分類)に対応したテンプレート名
  • {term}はカスタム分類のターム(項目)に対応したテンプレート名

上の表からも見て取れると思いますが、どのページの種類においてもindex.phpが最下層に存在します。
これによりindex.phpファイルさえあれば、すべてのページを出力はできると言えます。

参考サイト

参考にさせていただいたサイトを下記に示したいと思います。

SNSでもご購読できます。

コメントを残す

*