WordPressでは、PHPで記述されたテンプレートファイルを組み合わせてHTMLが自動生成します。

 

その際に適用されるテンプレートは、
テンプレートのファイル名ごとに優先順位がつけられています。

 

 

テンプレート優先順位を知っておくことで、

 

  • WordPressの設定に関係なくトップページテンプレートを適用させる
  • カスタム投稿タイプごとにテンプレートの種類を分ける
  • 指定するタクソノミー一覧のみ一覧の表示形式を変える
  • 固定ページのテンプレートファイルを追加する

 

など、よりWordPressで実現できるWEBサイトの幅が広がります。

 

 

ここでは、どういった名前のテンプレートの種類があり、
どういった優先順位の違いがあるのかについてご紹介します。

 

WordPressで生成されるページの構成

テンプレートファイル内部の構成

まずは、テンプレート内部の構成を知っておきましょう。

 

 

テンプレートの構成については以下のページで詳しく紹介しています。
ぜひ参考にしてみてください。

 

WordPressで使えるテンプレートの種類

WordPressで用意されているテンプレートの種類について見ていきます。

 

ホームページ表示

  • front-page.php
  • home.php

 

ホームページ(トップページ)表示では、
front-page.php、home.phpという名前のテンプレートが使うことができます。

 

これにより、トップページのみデザインを変えて表示することができるのです。

 

 

home.phpの特徴として、

WordPressの「設定」→「表示設定」でフロントに固定ページが選択されている場合は、home.phpよりも固定ページが優先して表示されるという仕様があります。

 

つまり、front-page.phpが存在している場合は、WordPressの表示設定で何を選択していても強制的にfront-page.phpの内容が表示されます。

 

個別投稿表示

  • single-{post_type}.php
  • single.php

 

個別投稿表示用のテンプレートファイルとして、
single-◯○.phpとsingle.phpがあります。

 

デフォルト仕様でsingle.phpのみが存在している場合は、投稿記事からカスタム投稿記事に至る、すべての個別投稿記事に共通してsingle.phpテンプレートファイルが適用されます。

 

ただし、特定の投稿タイプ(post_type)のみデザインを変えたい場合など、single-◯○.phpという投稿タイプ名を指定したテンプレートが存在している場合は、こちらのテンプレートがsingle.phpよりも優先的に適用されます。

 

固定ページ表示

  • page-{templatename}.php
  • page-{slug}.php
  • page-{id}.php
  • page.php

 

固定ページ表示用のテンプレートとして、
page-○◯.phpとpage.phpがあります。

 

デフォルト仕様でpage.phpのみが存在している場合は、すべての固定ページにpage.phpが適用されます。

 

ただし、特定のページのみデザインを変えたい時は、ページIDまたはスラッグに応じたテンプレートをpage-3.php,page-demo.phpといったファイル名で作成することによって、page.phpよりも優先的に適用することができます。

 

 

また、固定記事でテンプレートを選択できるようにするには、
page-【任意のテンプレート名】.phpというファイルを用意する必要があります。

 

 

テンプレートの例を以下に記述します。

 

 

個別投稿表示、固定ページ表示の両方に適用できるテンプレート

  • singular.php

 

WordPressのバージョン4.3以降にリリースされたテンプレートで、
個別投稿表示と固定ページ表示の両方の共通テンプレートとして使用することができます。

 

カテゴリー表示

  • category-{slug}.php
  • category-{id}.php
  • category.php

 

特定のカテゴリー一覧のデザイン用テンプレートです。

 

タグ表示

  • tag-{slug}.php
  • tag-{id}.php
  • tag.php

 

特定のタグ一覧のデザイン用テンプレートです。

 

カスタム分類表示

  • taxonomy-{taxonomy}-{term}.php
  • taxonomy-{taxonomy}.php
  • taxonomy.php

 

特定のカスタム分類一覧のデザイン用テンプレートです。

 

カスタム投稿タイプ表示

  • archive-{post_type}.php

 

特定のカスタム投稿タイプ一覧のデザイン用テンプレートです。

 

作成者表示

  • author-{nicename}.php
  • author-{id}.php
  • author.php

 

作成者一覧のデザイン用テンプレートです。

 

日付別表示

  • date.php

 

日付別一覧のデザイン用テンプレートです。

 

検索結果表示

  • search.php

 

検索結果一覧のデザイン用テンプレートです。

 

一覧系すべての項目に共通して適用できるテンプレート

  • archive.php

 

404 (Not Found) 表示

  • 404.php

 

404ページのデザイン用テンプレートです。

 

すべてのページに適用できるテンプレート

  • index.php

 

WordPressでは、テンプレートを用意することで優先的にそのファイルを読みにいきますが、用意されていなかったからといっても問題がありません。

 

優先的に読むファイルがない場合は、段階的に優先順位が低いファイルを読みにいき、最終的にはどのページでも適用できる万能テンプレートファイルであるindex.phpを読みにいきます。

 

テンプレートの優先順位

最後に、テンプレートの優先順位を見ていきましょう。

 

ページ 優先順位:高 ←→ 優先順位:低
トップページ front-page.php home.php index.php
個別投稿記事 single-{post_type}.php single.php singular.php
固定ページ記事 page-{templatename}.php page-{slug}.php page-{id}.php page.php
カテゴリー一覧 category-{slug}.php category-{id}.php category.php archive.php
タグ一覧 tag-{slug}.php tag-{id}.php tag.php
カスタム分類一覧 taxonomy-{taxonomy}-{term}.php taxonomy-{taxonomy}.php taxonomy.php
カスタム投稿タイプ一覧 archive-{post_type}.php
作成者表示一覧 author-{nicename}.php author-{id}.php author.php
日付別一覧 date.php
検索結果一覧 search.php
404 (Not Found) 404.php

 

 

おすすめの記事