【簡単】WordPressのテンプレート構造や階層を分かりやすく解説
- WordPressのテンプレートを編集したいけど構造が良くわからない
- 何をしているファイルなのか良くわからない
- 目的別に直すべき場所がわかると嬉しい
上記のことでお悩みの方は多いですよね。
WordPressは多くのファイルで構成されていて、テンプレートに影響を与えるもの・管理画面をカスタマイズしているものなど、種類は様々です。
自身でカスタマイズを行う際に間違ったファイルを触ることで、そのページもしくはサイト自体が表示できなくなることもありますので、テンプレート構造について知っておく必要があります。
この記事では、WordPressのテンプレート構造や階層について分かりやすく解説していきます。
目次
テンプレート構造
テーマとして機能するテンプレートは、テーマフォルダ内にあります。
テーマの変更・編集は、テーマフォルダ内のテンプレートを編集します。
基本のテンプレート構造
- index.php
- header.php
- footer.php
- style.css
上記の他にも、記事の出力やWordPressの管理画面のカスタマイズに使用するもの、サイドバー専用のテンプレートなどがあります。
複数のテンプレートを組み合わせることで、ひとつひとつのテンプレートがスッキリし、後々の編集もしやすくなります。
- index.php(基本ページ)
- page.php(固定ページ)
- single.php(記事詳細ページ)
- archive.php(記事一覧ページ)
- search.php(検索結果ページ)
- 404.php(404エラーページ)
- header.php(ヘッダー部分)
- sidebar.php(サイドバー部分)
- footer.php(フッター部分)
- style.css(スタイルシート)
上記で一通りのページを作成することができます。
多くの場合、header.php・footer.php・sidebar.phpは各下層ページに呼び出され、共通テンプレートとして使用されます。
テンプレートの呼び出し
共通テンプレートとして各ファイルを呼び出すには、WordPress専用のタグを使用する必要があります。
header.phpの呼び出し
<?php get_header(); ?>
footer.phpの呼び出し
<?php get_footer(); ?>
sidebar.phpの呼び出し
<?php get_sidebar(); ?>
それぞれ、読み込みたい場所に記述します。

テンプレート階層
各ページに使用できるテンプレートは複数ある場合もあり、それぞれのテンプレートには優先順位があります。
トップページ
WordPressがトップページとして認識できるテンプレートの優先順位は下記の通りです。
- front-page.php
- home.php
- index.php
front-page.phpが存在している場合には、index.phpが存在していても最優先にfront-page.phpがトップページとして表示されます。
固定ページ
WordPressに固定ページとして認識できるテンプレートの優先順位は下記の通りです。
- カスタムテンプレートファイル
(固定ページ作成画面の「テンプレート」メニューから選択したテンプレート) - page-slug.php
(slugは固定ページ作成画面で設定する「URLスラッグ」) - page-id.php
(idは固定ページ作成画面URLの?post=0の数字) - page.php
- singular.php
- index.php
固定ページや後述の個別ページ、アーカイブページなどについても、専用テンプレートが存在しない場合にはすべてindex.phpが適用されます。
これが、WordPressを構成する最低限のテンプレートにindex.phpが必要な理由です。
記事一覧ページ
記事一覧ページは、一般には「アーカイブページ」と呼ばれています。
カテゴリーごとに一覧を表示する「カテゴリーアーカイブページ」、タグごとに一覧を表示する「タグアーカイブページ」、作成者ごとに一覧を表示する「作成者別アーカイブページ」などがあります。
それぞれのアーカイブページを用途・目的によって使い分けることでユーザーのニーズに合わせた表示ができます。
- category-slug.php
(slugはカテゴリー作成時に設定するスラッグ) - category-id.php
(idはカテゴリーの編集画面URLの&tag_ID=0の数字) - category.php
- archive.php
- index.php
- tag-slug.php
(slugはタグ作成時に設定するスラッグ) - tag-id.php
(idはタグの編集画面URLの&tag_ID=0の数字) - tag.php
- archive.php
- index.php
- author-nicename.php
(nicenameはユーザーのニックネーム) - author-id.php
(idはユーザー編集画面URLの?user_id=0の数字) - archive.php
- index.php
優先順位として下位2つはarchive.phpとindex.phpで共通しています。 各アーカイブページに、オリジナリティを出したい場合には、できるだけ優先順位の高いものをテンプレートとして使用したほうがよいですが、共通のデザインでよいという場合には、「archive.php」をアーカイブページ共通のテンプレートとして使用することをおすすめします。
ブログサイトであれば、アーカイブページなど記事に関するページに力を入れてもいいと思いますが、コーポレートサイトなど他にも固定ページを多く使用する場合に、アーカイブページのテンプレートを共通化することでテンプレート作成の手間はぐっと減ります。
記事詳細ページ
記事詳細ページは、アーカイブページから個別記事にアクセスした際に表示されるページで、「シングルページ」とも呼ばれます。
アーカイブページにはタイトルのみ、もしくはタイトルと本文の抜粋を表示して、記事へのリンクをクリックすることで、全文や画像が表示されるシングルページを表示する仕様のサイトが多いので、シングルページのテンプレート階層も紹介します。
- single-post_type.php
(post_typeはデフォルト機能の投稿の場合postになります) - single.php
- singular.php
- index.php
カスタム投稿で投稿できる項目を増やした場合には、「post_type」で投稿ごとにテンプレート分けすることもありますが、アーカイブページ同様にシングルページも「single.php」を使用することで共通化できます。
その他のページ
上記以外にも、検索結果を表示するテンプレートには「search.php」、404エラー(ページが存在しないエラー)ページを表示するテンプレートには「404.php」を使用しますが、どちらも専用のテンプレートが存在しない場合には「index.php」を使用します。
テンプレート構造や階層を理解することで、テンプレートのカスタマイズがより自由になります。
同じページを表示するにも色々なテンプレートが利用できるので、目的に適したテンプレートを使用して、ユーザーにとって見やすいサイトづくりを心掛けていきましょう。
また、テンプレート階層を上手に利用することで、制作者にとっても無駄なページを作る必要がなく、効率的なサイト作りができるようになります。
テンプレートの使い分けができていれば、運用後のメンテナンスも楽になります。