WordPressのテンプレート階層を把握してテーマの構造を理解する
WordPressにはテンプレート階層と呼ばれる仕組みがあります。
テンプレートとはHTMLやPHP、テンプレートタグによって構成されたファイルです。
WordPressでは、アクセスしたページによって自動的にテンプレートが選択されます。
選択されるテンプレートには優先順位が設けられていて、この構造を知ることは、WordPressのカスタマイズのもっとも重要な基礎となります。
今回の記事では、テンプレート階層とは何かをわかりやすく解説します。
WordPressのテンプレートとは
テンプレート(Template)とは鋳型や型板という意味を持つ英単語です。
テンプレートは型に流し込んで毎回、同じ型を作ることから「定型文」「ひな形」「決まった様式」などを指して用いられます。
WordPressのテンプレートとは要するにウェブページのひな形のことで、データベースから情報を取得し、投稿内容や固定ページなどを動的に生成するPHPファイルで構成されています。
WordPressではアクセスされたウェブページに合わせて、表示するテンプレートが自動的に選択されます。
WordPressではテーマ=テンプレートと誤用している人もいますが、テンプレートとテーマは別物で、複数のテンプレートファイルが集まって1つのテーマを形成しているという関係になるので注意しましょう。
WordPressのテンプレート階層とは
WordPressでは、アクセスされたURLから自動的に各テンプレートを出力します。
そのときに複数のテンプレートから優先順位の高いものを出力する仕組みがテンプレート階層です。
呼び出されるテンプレートは以下のような流れで決定されます。
- リクエストされたURLからページを判別
- ページの種類を元にテンプレート階層上位のテンプレートファイルを探査
- 最初に一致したテンプレートを使用
- 一致しなければ階層内の次のファイルを探査
- どれにも一致しなければindex.phpを使用
例えば、カテゴリページが表示される場合は、以下の通りの流れでテンプレートが決まります。
- カテゴリページがリクエストされる
- カテゴリのスラッグが「test」の場合、category-test.phpがあれば使用
- カテゴリIDが7の場合、category-7.phpがあれば使用
- category.phpがあれば使用
- archive.phpがあれば使用
- どれもなければindex.phpを使用
テーマを作る場合はテンプレート階層の仕組みを理解し、作成するウェブサイトに合う適切な構造にすることが必要です。
表示ページの優先順位
テンプレートには表示する優先順位があります。
個別投稿のリクエストに対しては、以下の順でテンプレートに優先順位が付いています。
1. single-{post_type}.php
2. single.php
3. singular.php
4. index.php
固定ページの場合の優先順位は以下の通りです。
1.カスタムテンプレートファイル
2. page-{slug}.php
3. page-{id}.php
4. page.php
5. singular.php
6. index.php
テンプレート階層を正しく理解することは、WordPressの構造を理解することに繋がります。
カスタマイズするときに優先順位を頭に入れておくと応用が利きます。
ページごとのテンプレート階層
ページごとの連符レート階層について解説します。
index.php
index.phpは優先順位の高いテンプレートがない場合に出力される、汎用的なテンプレートです。
トップページや固定ページ、投稿ページで合致するテンプレートがない場合にindex.phpが表示されます。
index.phpはあらゆる種類のテンプレートが該当しなかった場合に、最終的に使われるテンプレートであるため、どんなテーマでもindex.phpが存在することは必須となっています。
index.phpのみを使ってテーマを構成することも可能ですが、分岐条件が複雑になりすぎるため、やはりウェブサイトの構造に合わせて、適切なテンプレートで設計することが必要です。
なお、よく誤解されがちですが、テーマ内のindex.phpは、ウェブサイトのインデックスファイルに該当するデフォルトドキュメントではありません。
デフォルトドキュメントとは、「https://xxx.com/」とファイル名を省略してもアクセスできるページのことであり、WordPressのインデックスファイルは、WordPressのインストールディレクトリにあるindex.phpになります。
トップページ
WordPressの「トップページ」は、デフォルトの状態で「https://xxx.com/」に表示されているページのことを指します。
トップページのテンプレートの優先順位は以下の通りです。
1. front-page.php
2. home.php
3. index.php
front-page.phpが存在している場合、管理画面から「設定」→「表示設定」の「ホームページの表示」でトップページに固定ページを選択していた場合でも、front-page.phpが優先的にトップページとして表示されます。
投稿
WordPressの「投稿」とは、記事を作成したページのことです。
投稿と固定ページの違いはカテゴリの有無で、投稿はカテゴリによって紐付けられますが、固定ページはカテゴリによって紐付けられません。
投稿のテンプレートの優先順位は以下の通りです。
1. single-{post_type(カスタム投稿名)}.php
2. single.php
3. singular.php
4. index.php
一般的に投稿や個別記事ページで用いるテンプレートはsingle.phpです。
single.phpはスラッグやIDで振り分けることができないため、表示ページに合わせて分ける場合は条件分岐を利用します。
固定ページ
WordPressの「固定ページ」とは、投稿とは異なりカテゴリに紐付けられないページのことです。
問い合わせページや会社情報、プライバシーポリシーなどに固定ページは使われます。
固定ページはそのページ単体で完結できるページですが、カテゴリで他のページと連結できないため自分でメニューバーに配置することが必要です。
固定ページのテンプレートの優先順位は以下の通りです。
1. customname.php
2. page-slug.php
3. page-id.php
4. page.php
5. singular.php
6. index.php
カテゴリページ
WordPressの「カテゴリページ」とは、各記事をカテゴリ分けしたときに表示されるページです。
カテゴリページでは、カテゴリごとに振り分けられた記事一覧が表示されます。
カテゴリは投稿にしか紐付けることができず、個別ページには紐付けられませんので注意してください。
カテゴリページのテンプレートの優先順位は以下の通りです。
1. category-slug.php
2. category-id.php
3. category.php
4. archive.php
5. index.php
すべてのカテゴリを1つのデザインで表示する場合は、category.phpを使いましょう。
カテゴリによりデザインを変更する場合は、条件分岐ないしIDやスラッグによるテンプレートの使い分けを行います。
タグ表示ページ
「タグ」とは付箋のようなもので、WordPressでは投稿にタグを付けて管理することが可能です。
同じタグの付けられた記事一覧を表示するページがタグ表示ページとなります。
タグ表示ページのテンプレートの優先順位は以下の通りです。
1. tag-slug.php
2. tag-id.php
3. tag.php
4. archive.php
5. index.php
カスタム分類
WordPress2.3以降、「カスタム分類」が利用できるようになりました。
投稿カテゴリやタグに加えて、新たに分類するグループをWordPressでは作成できます。
カスタム分類のテンプレートの優先順位は以下の通りです。
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
作成者表示
WordPressでは、記事作成者を表示する機能があります。
「記事作成者表示」では、記事作成者のニックネームやプロフィールを表示可能です。
作成者表示のテンプレートの優先順位は以下の通りです。
1. author-{nicename}.php
2. author-{id}.php
3. author.php
4. archive.php
5. index.php
日付表示
「日付表示」は、日時別に記事一覧を表示させる場合に使うテンプレートです。
一般的なウェブサイトでは年別、月別で記事一覧を表示させる場合に使います。
日付表示のテンプレートの優先順位は以下の通りです。
1. date.php
2. archive.php
3. index.php
404
「404ページ」は、該当するURLがない場合に表示されるエラーページです。
「お探しのページが見つかりませんでした」と表示されるページが404ページで、エラーが発生したときにWordPressは自動的にこのページを使用します。
404のテンプレートの優先順位は以下の通りです。
1. 404.php
2. index.php
WordPressのテンプレートをカスタマイズする4つのポイント
WordPressのテンプレートをカスタマイズする4つのポイントについて解説します。
- 基本構造とテンプレート階層を理解する
- テーマ編集には子テーマを使う
- 事前にバックアップを取る
- テスト環境で事前テストを行う
ひとつずつ見ていきましょう。
基本構造とテンプレート階層を理解する
WordPressのテンプレートをカスタマイズするとき、もっとも重要なのは基本構造とテンプレート階層を理解することです。
WordPressがどのような優先順位でテンプレートを読み込むのか知らないと、どのテンプレートをカスタマイズすればよいのかわかりません。
WordPressがどのページでどのテンプレートを読み込んでいるかを知れば、カスタマイズしたい箇所のテンプレートがわかります。
例えば、投稿ページをカスタマイズしたい場合はsingle.phpやsingular.phpを編集しますし、これらのテンプレートが見当たらない場合は、index.phpで処理している可能性があります。
このように、基本構造とテンプレート階層を知ることで、どのテンプレートを編集したらよいのか理解できます。
テーマ編集には子テーマを使う
子テーマとは、親テーマに「上書き」で読み込まれる仕組みのことです。
子テーマを利用することで、親テーマのテンプレートファイルを編集せずにWordPressのカスタマイズができます。
親テーマを直接編集してもカスタマイズはできますが、そのテーマがアップデートされた際に、書き加えたソースコードは全て消えてしまいます。
しかし、子テーマをカスタマイズすれば親テーマのアップデートの影響を受けません。
WordPressのカスタマイズには子テーマを使うのが一般的で、子テーマはプラグインで簡単に作れます。
子テーマを作る場合は、子テーマ作成プラグイン「Child Theme Configurator」を活用しましょう。
事前にバックアップを取る
テンプレートをカスタマイズするときは、必ずバックアップを取るようにしましょう。
万が一のエラーやトラブルのときも、バックアップがあれば安心です。
バックアップを取る方法は2種類、サーバーの自動バックアップ機能と、WordPressのバックアッププラグインがあります。
WordPressのバックアッププラグインには「BackWPup」や「UpdraftPlus」があります。
テスト環境で事前テストを行う
テンプレートをカスタマイズするときは、テスト環境で事前にテストしてからの方が確実です。
PHPやCSSの編集ではエラーが出るのが当たり前で、書き間違いや入力ミスにより、想定通りの動作をしないといったことが頻繁に起こります。
そこでテスト環境を用意してそこでテストしてから本番環境に適用しましょう。
テスト環境を作るには3つの選択肢があります。
l レンタルサーバーにテスト環境を構築
l XAMPPを利用
l Localを利用
テスト環境を構築して、安全にテンプレートをカスタマイズしましょう。
まとめ
今回は、WordPressのテンプレート構造について解説しました。
WordPressのテンプレートは種類が多く、最初はなかなか名前が頭に入りませんが、管理画面でテーマの編集を繰り返しているうちに、だんだん仕組みが分かってくると思います。
テンプレート階層を知ることはWordPressのカスタマイズの基本であり、テンプレートが分かると、WordPressの構造を具体的に理解できるようになります。
テンプレート階層を把握して、自由にWordPressをカスタマイズしてみましょう
独自ドメインを取得するなら「お名前.com」
「お名前.com」は、国内シェアNo.1のドメイン登録サービスです。
独自ドメインと合わせて、WordPressの自動インストールに対応したレンタルサーバーも利用できます。
WordPressや独自ドメインを一度も使ったことのない人でも、スムーズに始められるはずです。
独自ドメインを取得しようと考えている方は、まずは無料で好きなドメイン名を検索してみましょう。
まずは検索!ドメインは早い者勝ち