初級者~中級者向け 知識

【知識】WordPressのテンプレートファイル、テンプレート階層とは?

WordPressの知識
この記事は約7分で読めます。

文中の説明画像をクリックすると拡大します。

Pocket

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

WordPressのテンプレートファイルとは、Web(ウェブ)ページを構成するパーツとなるファイルです。

ひとつのページは「いくつものテンプレートファイル」が組み合わさることで表示されます。

一つ一つのテンプレートファイルは、全体を作る骨組みであったり、ヘッダ部分だけを受け持ったり、フッタ部分だけを受け持ったり、コンテンツ部分だけを受け持ったりと、それぞれの役割を担っています。

WordPressでテンプレートファイルを編集するときには、必要な箇所を編集すればよいので、例えばヘッダのタイトル部分を修整する場合には、ヘッダのテンプレートファイルを編集すればよいのです。

文章や写真は管理画面(ダッシュボード)の「投稿の編集」や「固定ページを編集」から入力しますが、これらの情報も、「コンテンツを表示するテンプレートファイル」の働きによってページに表示されることになります。

WordPressのページの構造

WordPressのページがどういう構造なのかを見てみると、ごくシンプルな構成の場合には、以下の3つのブロックでできています。

  • ヘッダー部分
  • コンテンツ部分
  • フッター部分

 

これらの各ブロックは、テンプレートファイルで構成されるのです。

この場合、ヘッダー部分は「header.phpフッター部分は「footer.phpという名前のファイルに記述することが多いです。

コンテンツ部分を何というファイルに記述するのかというと、そのページタイプやテンプレートの構成によって様々なファイルになります(例:single.php、content.php、single.php・・・など)。

テンプレートファイルの例

テンプレートファイルの名前は、定まった名前から固有の名前まであり、そのテンプレート構成によって様々です。

例としては以下のようなテンプレートファイル名があります。カッコ内はそのテンプレートファイルが使われる用途の例です。

  • index.php(トップページ、その他のページ)
  • front-page.php (フロントページ=トップページ)
  • home.php (ブログのホームページ=ブログのトップページ)
  • archive.php(アーカイブ、過去記事一覧)
  • archive-○○○.php(○○○というアーカイブ)
  • single.php(個別記事)
  • single-○○○.php(○○○という投稿タイプの個別記事)
  • page.php(固定ページ)
  • header.php (ヘッダー部分)
  • footer.php (フッター部分)
  • sidebar.php (サイドバー部分)
  • content.php (コンテンツ部分)
  • content-○○○.php(○○○というコンテンツ部分)
  • search.php(検索結果部分)
  • comments.php (コメント部分)
  • 404.php (404 Not Found画面)

テンプレート階層って何?

どんなテンプレートファイルがいくつ必要なのかは、そのテーマによって違います。多くのテンプレートファイルを利用するテーマもあれば、ごく限られたテーマファイルを利用するテーマもあります。

極端なことを言えば、最低限1枚のテンプレートファイル(index.php)とstyle.css(スタイルシート)があれば、ページを表示することはできます

さて、WordPressは、どんなテンプレートファイルがあるのかを確かめながらファイルを読んでいくのですが、このときに読んでいく順番(優先順位)があります。このテンプレートファイルの優先順位のことを「テンプレート階層」と呼びます。

テンプレート階層(WordPressが読むファイルの優先順位)をまとめると、基本的には以下の通りです。

ページ テンプレートの優先順位 メモ
トップページ
  1. front-page.php
  2. home.php
  3. index.php
 
個別投稿ページ
  1. single-{post_type}.php
  2. single.php
  3. singular.php
  4. index.php
例)投稿タイプがcompanyの場合には、single-company.php
固定ページ
  1. page-{slug}.php
  2. page-{id}.php
  3. page.php
  4. singular.php
  5. index.php

例)スラッグがcompanyの場合には、page-company.php

例)ページID「2」用のテンプレートなら、page-2.php

カテゴリーページ
  1. category-{slug}.php
  2. category-{id}.php
  3. category.php
  4. archive.php
  5. index.php

カテゴリーをクリックしたときに表示されるアーカイブページ

例)カテゴリーのスラッグがnewsの場合には、category-news.php

例)カテゴリーID「7」用のテンプレートなら、category-7.php

タグページ
  1. tag-{slug}.php
  2. tag-{id}.php
  3. tag.php
  4. archive.php
  5. index.php

タグをクリックしたときに表示されるアーカイブページ

例)タグのスラッグがfoodの場合には、tag-food.php

例)タグID「2」用のテンプレートなら、tag-2.php

カスタム分類ページ
  1. taxonomy-{taxonomy}-{term}.php
  2. taxonomy-{taxonomy}.php
  3. taxonomy.php
  4. archive.php
  5. index.php

カスタム分類アーカイブインデックスページの表示に使用される

カスタム投稿ページ
  1. archive-{post_type}.php
  2. archive.php
  3. index.php

カスタム投稿タイプ アーカイブインデックスページの表示に使用される

記事作成者ページ
  1. author-{name}.php
  2. author-{id}.php
  3. author.php
  4. archive.php
  5. index.php

記事の投稿者名をクリックしたときに表示されるアーカイブページ

例)記事作成者がtaroの場合には、author-taro.php

例)記事作成者のIDが「5」の場合、author-5.php

日付別表示ページ
  1. date.php
  2. archive.php
  3. index.php

「2月の投稿」など、年月日を元にしたアーカイブ

検索結果ページ
  1. search.php
  2. index.php
 
404 Not Foundページ
  1. 404.php
  2. index.php

存在しないページをリクエストされたときに表示されるページ

添付ファイル表示
  1. {MIME_type}.php
    1. text.php
    2. plain.php
    3. textplain.php
  2. attachment.php
  3. single-attachment.php
  4. single.php
  5. index.php

個別添付ファイルページ (attachment 投稿タイプ) の表示に使用される

テンプレートファイルを編集するには、テーマのアップデートなどを考慮して、できるだけ子テーマを作って編集することが望まれます。詳しくは以下のページをご覧ください。

【基本】WordPressの親テーマと子テーマって何?
「子テーマ」とは、テーマとは別ファイルでありながら、同時に読み込まれて、機能とスタイルを引き継いだ、カスタマイズ専用のテーマのことです。「子テーマ」から見たオリジナルのテーマを「親テーマ」と呼ぶことがあります。

また、テンプレート階層について、詳しくはこちらもご覧ください。

https://wpdocs.osdn.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E9%9A%8E%E5%B1%A4#.E3.83.9A.E3.83.BC.E3.82.B8.E7.A8.AE.E9.A1.9E.E5.88.A5.E3.83.86.E3.83.B3.E3.83.97.E3.83.AC.E3.83.BC.E3.83.88.E9.9A.8E.E5.B1.A4

 

まとめ

  • WordPressのテンプレートファイルとは、Webページを構成するパーツとなるファイルである。
  • 例を挙げると、ヘッダー部分は「header.php」フッター部分は「footer.php」という名前のテンプレートファイルに記述することが多い。
  • WordPressがどんなテンプレートファイルがあるのかを確かめながら読んでいくその優先順位のことを、テンプレート階層と呼ぶ。
Pocket