
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 |