【WordPress】テンプレートファイルの優先順位


WordPressのテーマ作成に必要な個々のテンプレートファイルですが、優先順位(階層)があります。

⇒テンプレートファイルとは?

たとえば、テーマ内に”投稿ページを出力させるsingle.php”とindex.phpがある場合は、投稿ページにはsingle.phpに書かれた内容が表示されます

index.phpとは?

Webサイトの構造の核となるテンプレートファイル。

他にテンプレートがなければ、このファイルが読み込まれます。

そして、single.phpがテーマに無い場合、index.phpに書かれた内容が表示されます。

この場合は以下の優先順位が成立します。

single.php > index.php

以下で、テーマを作成する場合やテーマをカスタマイズする場合に必要となる『テンプレートファイルの優先順位』について、ご説明します。

テンプレートファイルの優先順位

テンプレートには、優先順位(階層)があり、上位のテンプレートが優先されます。

もし無ければ、次の順位のテンプレートが出力されます。

それぞれの順位を以下の表に示します。❶が最上位のテンプレートになります。

ページの種類 優先順位
投稿ページ ❶single-post_type.php ❷single.php ❸singular.php ❹index.php
固定ページ カスタムテンプレート ❷page-スラッグ名.php ❸page-ID番号.php ❹page.php ❺singular.php ❻index.php
カイブ カテゴリ別 ❶categoryスラッグ名.php ❷categoryID番号.php ❸category.php ❹archive.php ❺index.php
日付系 ❶date.php ❷archive.php ❸index.php
タグ別 ❶tagスラッグ名.php ❷tagID番号.php ❸tag.php ❹archive.php ❺index.php
ユーザー
(作成者別)
❶authorネーム.php ❷authorID番号.php ❸author.php ❹archive.php ❺index.php
タクソノミー ❶taxonomytaxonomyterm-php ❷taxonomytaxonomy.php ❸taxonomy.php
検索 ❶search.php ❷index.php
ページがない場合 (404) ❶404.php ❷index.php
スポンサーリンク

「home.php」それとも「front-page.php」?

フロントページを出力するテンプレートは、以下の2つがあります

  • home.php
  • front-page.php

以下で、この2つの違いを説明します。

スポンサーリンク

front-page.phpの優先順位

front-page.phpがテーマ内にあれば、トップページの出力には、常にこのファイルが適用されます。

つまり、front-page.phpは、home.phpよりも上位にあるテンプレートになります。

スポンサーリンク

home.phpが使われるのは?

もし、front-page.phpがテーマ内に無い条件で、かつ「フロントページの表示」で『最新の投稿』が選択されている場合に、home.phpが出力(表示)されます。

「フロントページの表示」とは?

WordPressでは、編集ページの左サイドバーより「設定>表示設定」で、フロントページの表示を選ぶことができます。

  • 最新の投稿
  • 固定ページ

もし、front-page.phpがテーマ内に無い条件で、かつ「フロントページの表示」で『固定ページ』が選択されている場合は、固定ページ用のテンプレートが使われます。

トップページ出力のまとめ

トップページの出力の優先順位をまとめると、次のようになります。

ページの種類 優先順位
最新の投稿 ❶front-page.php ❷home.php ❸index.php
固定ページ ❶front-page.php ❷選択された固定ページの優先順位 ❸index.php
「フロントページの表示」の『固定ページ』にした状態だと、font-page.phpが正常に機能しないことがあります。もしトップページの出力がおかしいことがあれば、「フロントページの表示」を『最新の投稿』に変更してください。
スポンサーリンク
ページ先頭へ