WordPressテーマの基本構造|テンプレート階層とファイルの役割・優先順位を解説

eye 02 1

この記事でわかること
  • テンプレート階層とは何か(ファイルが選ばれる仕組み)
  • 主要テンプレートファイル(index.php / single.php / page.php / archive.php 等)の役割
  • functions.php・header.php・footer.php の役割
  • 子テーマで安全にカスタマイズする考え方

テーマのファイルがたくさんあって、「どのファイルが、どのページを表示しているのか分からない」——そんな状態、ありませんか?

single.php、page.php、archive.php……名前はなんとなく分かっても、いつどれが使われるのかは、最初は本当に謎ですよね。

WordPressには「テンプレート階層」という明確なルールがあって、表示するページの種類ごとに「どのファイルを優先して使うか」が決まっています。これが分かると、テーマのどこを直せばどのページが変わるのか、地図を手に入れたように見通せるようになります。

この記事では、テンプレート階層の仕組みと、主要なテーマファイルの役割・優先順位を、できるだけやさしく整理していきます。

R
R

WordPress老人のRです。昔は「とりあえず single.php を触ってみる」で何度も事故りました。階層を理解してからは、迷いがなくなりました。一緒に地図を読みましょう。

記事を書いている人

profile

R(アール)

Web制作の現場で17年(現役進行中)。精密栄養カウンセラー。

個人開発をアプリ6本並行しながら、AIと「作る・届ける」を実験しています。

うまくいったことも、月収2,000円みたいな冴えない数字も、隠さず公開中。

教える人ではなく、少し先で転んで戻ってきた人として、あなたと同じ目線で現在地を観測していけたらと思います。


AIと「作る・届ける」の実験は、週1でメルマガにも書いています。→ のぞいてみる(限定特典つき無料)

WordPressのテンプレート階層とは?

まずは結論から。テンプレート階層とは、WordPressがページを表示するときに「このページにはどのテンプレートファイルを使うか」を、決まった順番で探していく仕組みのことです。

たとえば個別の投稿ページを開いたとき、WordPressはいきなり index.php を使うわけではありません。「single.php はあるかな? なければ singular.php は? それもなければ index.php で」と、専用のファイルから順に探していきます。

この順番さえ頭に入れば、「トップページを直したいのに、なぜか変わらない」「single.php を編集したのに反映されない」といった”どこを触ればいいのか問題”が、ほぼ解決します。テーマ構造の地図、それがテンプレート階層です。

WordPressがファイルを探す順番(優先順位)

ここがこの記事の核心です。少しややこしく見えますが、ルールは1つだけ。「専用のファイルを優先し、なければより汎用的なファイルへ、最後は必ず index.php」。これだけです。

主なページの種類ごとに、探される順番をまとめました。左にあるファイルが優先され、無ければ右へ進み、最終的にはどのページも index.php にたどり着きます。

ページの種類探される順番(左が優先 → 無ければ右へ)
個別投稿single-{投稿タイプ}.php → single.php → singular.php → index.php
固定ページカスタムテンプレート → page-{スラッグ}.php → page-{ID}.php → page.php → singular.php → index.php
カテゴリー一覧category-{スラッグ}.php → category-{ID}.php → category.php → archive.php → index.php
タグ一覧tag-{スラッグ}.php → tag.php → archive.php → index.php
ブログ投稿一覧home.php → index.php
フロントページfront-page.php →(投稿一覧なら home.php / 固定ページなら page.php)
検索結果search.php → index.php
404エラー404.php → index.php

表を見ると、どのページも最後は index.php に行き着くのが分かります。逆に言えば、index.php さえあればテーマは”とりあえず動く”。そこに single.php や archive.php といった専用ファイルを足していくほど、ページごとに細かく作り込める、という構造です。

とりさん
とりさん

固定ページを直したくて single.php をいじってました……道理で変わらないわけだ。

R
R

みんな一度はやります(私もです)。固定ページは page.php。この表をブックマークしておけば、もう迷いません。

主要テンプレートファイルの役割

名前だけ並べられても覚えられないので、よく使うものから役割を整理します。ここを押さえれば、テーマの中身がぐっと読みやすくなります。

index.php — 最後の砦(唯一の必須ファイル)

どのページでも、専用ファイルが見つからなければ最終的に使われるのが index.php です。テンプレートの中で唯一「これが無いとテーマとして成立しない」必須ファイル。まずは index.php、というのが出発点になります。

single.php / page.php — 個別投稿と固定ページ

single.php は1件の投稿を表示するためのファイル、page.php は固定ページ用です。ブログ記事と「会社概要」のような固定ページで見た目を変えたいときは、この2つを分けて作り込みます。両者に共通するレイアウトは singular.php にまとめることもできます。

archive.php / category.php / tag.php — 一覧ページ

投稿が一覧で並ぶページを担当します。archive.php がカテゴリー・タグ・日付別などの一覧の”共通担当”で、category.php や tag.php を置けば、その種類だけ専用のデザインにできます。まずは archive.php を1枚用意しておけば、たいていの一覧はカバーできます。

front-page.php / home.php — トップページの2パターン

ここは混乱しやすいところ。home.php は「最新投稿の一覧」を表示するトップ用、front-page.php は設定に関わらずサイトの最前面を担当します。「設定 → 表示設定」で固定ページをトップにしているか、最新投稿にしているかで、どちらが使われるかが変わります。

404.php / search.php — エラーと検索結果

404.php は存在しないURLにアクセスされたときの「ページが見つかりません」表示、search.php は検索結果の表示を担当します。地味ですが、404ページにトップへの導線を置いておくだけで、離脱を1段減らせます。

テンプレート以外の重要ファイル

テーマには、ページを「表示」するテンプレート以外にも、欠かせないファイルがあります。ここを混同すると後で必ずつまずくので、分けて理解しておきます。

functions.php — テーマの頭脳(テンプレートではない)

ここは大事なポイントです。functions.php はテンプレート階層には含まれません。どのページを開いても常に読み込まれ、テーマの「機能」を定義する場所です。

具体的には、メニューの登録、アイキャッチ画像の有効化、ウィジェットエリアの追加、CSS/JSの読み込み、フック(add_action / add_filter)など。「表示」を担うのがテンプレート、「機能」を担うのが functions.php、と役割で分けて覚えると混乱しません。

ちなみに functions.php の検索ボリュームは月210前後あり、SEO難易度も低め。それだけ「ここでつまずく人が多い」ファイルでもあります。1行の書き間違いでサイトが真っ白になることもあるので、編集はバックアップとセットで。

header.php / footer.php / sidebar.php — 共通パーツ

全ページで共通するヘッダー・フッター・サイドバーを切り出したファイルです。各テンプレートから get_header() / get_footer() / get_sidebar() で呼び出して使います。共通部分を1か所にまとめておけば、修正もそこだけで済む。いわゆるDRY(同じことを繰り返さない)の要です。

子テーマで安全にカスタマイズする

既存のテーマを直接編集していて、アップデートしたら変更が全部消えた——これも”WordPressあるある”です。それを防ぐのが「子テーマ」です。

子テーマとは

子テーマは、親テーマの機能を引き継ぎつつ、変更したい部分だけを上書きするための仕組みです。親テーマはそのまま残るので、親がアップデートされても自分の変更は消えません。既存テーマを少しだけカスタマイズしたいときの、ほぼ必須の作法です。

最小構成は style.css と functions.php の2つ

子テーマは、新しいフォルダを作り、style.css のコメント欄に「どの親テーマの子か(Template: 親テーマのフォルダ名)」を書くだけで成立します。あとは functions.php で親テーマのスタイルを読み込めば準備完了。最低限この2ファイルから始められます。

同名ファイルを置くと、子テーマが優先される

ここでテンプレート階層の話とつながります。子テーマに親テーマと同じ名前のファイル(たとえば single.php)を置くと、子テーマのほうが優先して使われます。つまり、変えたいテンプレートだけを子テーマにコピーして編集すれば、親テーマを一切触らずにカスタマイズできる。階層の仕組みが、安全なカスタマイズの土台にもなっているわけです。

まとめ

テンプレート階層は、WordPressが「どのファイルでこのページを表示するか」を決める順番のルールでした。専用ファイルを優先し、無ければ汎用へ、最後は index.php。この地図さえ持っていれば、「どこを直せばどこが変わるか」で迷わなくなります。

そして表示を担うテンプレートと、機能を担う functions.php を分けて理解し、カスタマイズは子テーマで安全に。ここまで押さえれば、テーマの基本構造はほぼ手の内に入ります。

最後に。テンプレート階層を覚えること自体がゴールではありません。大事なのは、自分がテーマを触るとき「どのページの、どの部分でいつも手が止まるのか」を観測することです。詰まる場所が見えれば、次に深掘りすべきファイルが分かる。構造の地図は、自分の弱点を観測するための座標軸でもあります。

次回(vol06)では、header.php や footer.php のような共通パーツを、get_template_part() でさらに整理する方法に進みます。

この記事は「WordPress老人から脱却!Gutenberg完全ガイド」シリーズの一部です。
シリーズ全体を見る

あわせて読みたい


「自分の強みは何か」が、見えなくなる時期があります。

診断を受けても、本を読んでも、「結局どう動けばいいか」が分からない。考えるほど止まる。これは個人クリエイターによくある状態です。

個人開発8本、月収2,000円。Web制作17年のクリエイターが、AI と「作る」「届ける」を honest に実験している過程をメルマガで公開しています。「観測する」生き方の実践ログです。

登録特典:「AI時代に取り残されないための構造整理シート」(PDF 12p / 5ステップ)― スキル棚卸しから、自分のポジション設計まで。

メルマガに登録する(無料・PDF特典付き)