【ワードプレス】テンプレートファイルとテンプレート階層

ワードプレスのテンプレートファイルとテンプレート階層

ワードプレスは、「テーマ」と呼ばれるファイル群からWebサイトが構築されています。そのテーマを作る上で大切な決まり事なので押さえておきましょう。





テンプレートファイルとテンプレート階層




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

簡単に言うと、ワードプレスのルールに沿って作られたPHPファイルのことをテンプレートファイルと呼びます。

通常Webサイトを作る際、トップページと他のページのデザインが全く同じというケースは少なく、各ページの内容ごとに異なったデザインで作成していく場合がほとんどです。

ワードプレスでは、アクセスされたページに合わせて表示するファイルを自動的に変更してくれるので、そのためにちょっとしたルールが必要になるわけです。

個別投稿の記事を出力するにはsingle.php、固定ページを出力するにはpage.phpなど、「○○ページの出力には○○.phpを読み込んでね」というように、そのページに合わせてテンプレートファイルを作成していくことになります。


◆ 主なテンプレートファイル

テンプレートファイルと概要

front-page.php

Webサイトのトップページを表示

single.php

投稿の記事ページを表示

page.php

固定ページを表示

category.php

カテゴリーページを表示

search.php

検索結果ページを表示

archive.php

記事一覧ページを表示

404.php

404エラーページを表示


テンプレート階層とは?

先程の表(◆ 主なテンプレートファイル)のテンプレートファイルにも、実は細かくそれぞれに優先順位があります。

その優先順位のルールがテンプレート階層です。

ワードプレスは、アクセスされたページによって優先順位が高いテンプレートファイルを探し、それに該当するテンプレートファイルがあればそれを表示する仕組みです。


例:「404ページ」の優先順位


①404ページを表示するために、はじめは404.phpというファイルを探しに行く。

②テーマ内に404.phpが存在する場合は404.phpを表示。存在しない場合は次の優先順位index.phpを表示。


そしてこの優先順位は、テンプレートファイルのファイル名によって決定されるため、テンプレート階層を理解してテンプレートファイルを作成しておかないと、意図したページが表示されない!意図したページデザインと違う!といったことが起こってしまいます。

では、よく使うテンプレートファイルのテンプレート階層を見ていきましょう。



各ページのテンプレート階層




トップページのテンプレート階層

トップページは、一番最初に表示されるメインのページで、多くの場合は他のページとはデザインが異なるものになります。

テンプレートの優先順位はfront-page.phpになります。


トップページのテンプレート階層
  • 1: front-page.php
  • 2: 固定ページ→※【設定】→【表示設定】の「フロントページの表示」が「固定ページ」に設定されてる場合
  • 3: home.php
  • 4: index.php



個別投稿ページのテンプレート階層

個別投稿ページとは、ワードプレスの「投稿」を使った通常の記事ページのことです。他にもカスタム投稿タイプというオリジナルの投稿タイプがあります。優先順位が高いのはカスタム投稿タイプのテンプレートファイルですが、カスタム投稿タイプを利用していない場合は、「single.php」または、「singular.php」にするといいです。


個別投稿ページのテンプレート階層
  • 1: single-{post_type}.php→例:投稿タイプがmenuの場合はsingle-menu.php
  • 2: single.php→記事投稿ページ
  • 3: singular.php→記事や固定ページ、カスタム投稿タイプの記事
  • 4: index.php



カテゴリー別記事一覧ページのテンプレート階層

カテゴリー分けされた記事の一覧を表示するページで、例えばカテゴリー別記事一覧、月別記事一覧などがあります。この一覧ページはデザインも似たものになる事が多いのでそれぞれに分けなくても「archive.php」などでひとつのテンプレートファイルにすると管理しやすいです。


カテゴリー別記事一覧ページのテンプレート階層
  • 1: category-{slug}.php→例:カテゴリースラッグが”menu”の場合はcategory-menu.php
  • 2: category-{ID}.php→{ID}にはカテゴリーIDが入ります
  • 3: category.php
  • 4: archive.php
  • 4: index.php



月別記事一覧ページのテンプレート階層

ひとつ前のカテゴリー別記事一覧ページのテンプレート階層で説明しましたが、この月別記事一覧とカテゴリー別記事一覧はデザインが似たものになる事が多いので「archive.php」または、「index.php」のどちらかを準備すればひとつのテンプレートファイルで各記事の一覧を作ることができますよね。


月別記事一覧ページのテンプレート階層
  • 1: date.php
  • 2: archive.php
  • 3: index.php


詳細なテンプレート階層はこちら!


まとめ


ここまでテンプレート階層の優先順位を見てきましたが、どのテンプレート階層を見ても最終的に「index.php」にたどり着きます。

つまり、デザインが全ページ共通なら「index.php」のみあればいいという事です。

逆に言えば、ワードプレスのテーマには最低限「index.php」が必要という事ですね。

実際、ワードプレスでテーマを作成する際、「index.php」、「style.css」、「functions.php」の3つのファイルがないとテーマとして認識されません。

ワードプレスでWebサイトを構築する際、テンプレート階層の設計はとても重要になるので、しっかり押さえておきたいですね。



↓これからワードプレスを始める方へ!↓

・『WordPressを始めるのに最適!』なおすすめのレンタルサーバー4選