WordPressエンジニア向け入門その5、ページ種類に応じたテンプレートファイルの選択

WordPressエンジニア向け入門その5です。 前回 『WordPressエンジニア向け入門その4、リクエストに応じたデータを取得するメインクエリ処理』は、WordPressのメインクエリについて説明しました。今回はその続きで、メインクエリで取得したデータを表示するためのテンプレート選択についてです。
本連載でお伝えしてきたページ表示までの流れの最後の部分です。
テンプレート選択は WordPressをカスタマイズする際のデザイン(見た目)に関わる部分です。カテゴリの種類や固定ページの種類に応じてデザインを変えたい場合、それぞれに応じたテンプレートファイルを用意することをおすすめします。
テンプレートファイルごと別にすることで、 同じテンプレートファイル内で条件分岐が発生することがないですし、メンテナンスのしやすさ、不要になった場合の削除等も行いやすくなります。
テンプレート選択を極めて、柔軟なカスタマイズができるようになりましょう。
テンプレート選択の基本
WordPressでは、ページ種類に応じてどのテンプレートファイルを使用するかがあらかじめルール化されています。WordPressをカスタマイズする際、基本的にはこのルールに沿ったテンプレートファイルを準備します。
ページ種類がカテゴリの場合のテンプレート選択
以下のとおり、上から順にテーマフォルダ内を検索していき、見つかった時点でそのテンプレートが選択されます。
- category-{slug}.php
- category-{id}.php
- category.php
- archive.php
- index.php
この仕組みのことを テンプレート階層といいます。ページ種類ごとの規定のテンプレート階層順にテンプレートを探して見つかったテンプレートファイルをページ表示に使用します。
ページ種類
標準で以下のページ種類が定義されています。
- ホームページ表示
- フロントページ表示
- 個別投稿表示
- 固定ページ表示
- カテゴリー表示
- タグ表示
- カスタム分類表示
- カスタム投稿タイプ表示
- 作成者表示
- 日付別表示
- 検索結果表示
- 404 (Not Found) 表示
- 添付ファイル表示
- Embeds
よく使うのはホームページ、個別投稿、カテゴリー、タグ、カスタム分類、カスタム投稿タイプだと思います。
テーマのカスタマイズ
WordPressをカスタマイズする方法として、
- 既存のテーマをカスタマイズ
- 1からテーマを作成
の2パターンありますが、まずは前述のページ種類用のテンプレートファイルを最低ひとつ用意しましょう。既存のテーマであれば大抵、全ページ種類に応じたテンプレートファイルがひとつは存在するはずです。
1からテーマを作成する場合、最低限必要なindex.phpとstyle.cssだけからはじめていいのですが、ページ種類に応じた規定のテンプレートが存在することを念頭に必要なテンプレートファイルを用意していきましょう。
テンプレート階層一覧
WordPressのCodexに詳しく載っていますので、詳細はそちらを参照してください。
ページ種類に応じたテンプレート階層が確認できます。
テンプレートファイルの変更方法
WordPress規定の処理では、ページ種類とテンプレート階層に応じたテンプレートファイルの選択が行われることがわかりました。この動作もフックを使えばカスタマイズすることが可能です。
テンプレートファイル変更に関するフック
以下2つのフックがあります。
- {$type}_template → $typeにはページ種類(category、single、page等)が入ります。
- template_include
基本的にはどちらを使用しても構わないのですが、まずは{$type}_templateを使用し、 ページ種類に応じたカスタムテンプレートを読み込むように設定すればいいです。
template_includeは{$type}_templateで決まったものをさらに変更したい場合に利用できるのですが、あまり使う機会はない気がします。
フックの詳細はまた別の機会に。
まとめ
これまでの連載をすべて読んでいただけると、WordPressでページが表示されるまでの仕組みが理解できたかと思います。単にページを表示するだけでもさまざまな処理が自動的に動いていたことがわかったと思います。
また、各ステップごとにカスタマイズする仕組み(フック)が導入されていることもわかっていただけたかと思います。
WordPressをカスタマイズするには、まずは 基本的な動作を理解すること、動作を理解したらそれを カスタマイズするフックを理解すること。これらが理解できればWordPressのカスタマイズはほとんどマスターしたようなものです。
せっかくWordPressを利用するのですから、その思想に則った正しいカスタマイズ方法を身に着けましょう。