-
WordPress
- WordPress
- テンプレート階層
WordPressでページを表示する重要な要素!テンプレート階層を解説
WordPressでページを表示する上で大切なのがテンプレート階層です。WordPressではページを生成する際に、テンプレート階層に基づいて、テンプレートとなるPHPファイルを選び、表示します。
そのため、テンプレート階層を理解しないと表示したいページを表示できないことがあります。つまり、テンプレート階層を理解しなければ、あなたが考えているページ構成にすることができません。
本記事ではWordPressにおけるテンプレート階層について解説します。理解しにくい場合は実際にファイル名を変えて表示させながら、確認することをおすすめします。
テンプレート階層とは
テンプレート階層とはWordPressにおいてページを生成する際に、使用するテンプレートファイルを決めるための仕組みのことです。ページによってどのテンプレートファイルを優先的に呼び出すかを決めます。
テーマの入ったディレクトリからファイル名から該当するテンプレートファイルを見つけて、表示します。テンプレートは階層形式になっており、優先順位の高いファイルがなければ、次のファイルを探し、表示させます。
WordPressのテーマを作る際に「index.php」がなければ表示されないのは、テンプレート階層で優先順位が低いため、index.phpが無くなってしまうと表示させるものがないからです。
ページを作るためのテンプレート階層を解説
ホームページ
WordPressでのデフォルトではブログ投稿を表示するページをホームページとして設定されています。ダッシュボードの「設定」→「表示設定」でホームページの表示が「最新の投稿」となっている場合、優先順位はhome.php、index.phpの順になります。
ホームページのことをブログ投稿用インデックスページとも呼ばれるので覚えておくといいと思います。
フロントページ
ホームページの表示が「固定ページ」になっている場合は、home.phpではなく、固定ページが優先されます。ホームページのプルダウンでテンプレートを選ぶことができます。しかし、選ばない場合は下記の優先順位に従って、表示されます。
- front-page.php
- カスタムテンプレートファイル
- page.php
- singular.php
- index.php
固定ページをフロントページにした場合は、front-page.phpにすることをおすすめします。イメージからindex.phpにする方もいますが、テンプレート階層の概念を加味するならfront-page.phpがいいと思います。
個別投稿ページ
ブログなどの個別投稿ページにも優先順位があります。個別投稿ページとは時系列でながれていくため、ブログや時系列ごとのコンテンツを作る際に利用されます。個別投稿ページの優先順位は以下の通りです。
- single-[post-type].php
- single.php
- singular.php
- index.php
[post-type]には投稿タイプが入ります。postやpage、attachmentと行ったデフォルトの投稿タイプやカスタム投稿タイプを入れると優先順位が上がります。
固定ページ
固定ページは投稿ページとは別にテンプレートを用意して表示させます。重要なページや運用していく上で時系列によって変わらないページなどに用いられます。例えば、コーポレートサイトであれば、企業紹介です。
固定ページにおける優先順位は以下の通りです。
- カスタムテンプレートファイル
- page-[slug].php
- page-[id].php
- page.php
- singular.php
- index.php
[slug]にはページのスラッグ、[id]にはページのIDがそれぞれ入ります。固定ページを作る際は、page.phpを起点にファイル名を考えることをおすすめします。
カテゴリーページ
WordPressの記事はカテゴリ分けをする機能がついています。カテゴリーを分類することでカテゴリーの一覧ページを生成することができます。サイドバーでカテゴリーページのリストを表示することもできます。カテゴリーページの優先順位は以下の通りです。
- category-[slug].php
- category-[id].php
- category.php
- archive.php
- page.php
- index.php
投稿ページは時間が経つごとに古いページが埋もれていきます。カテゴリー分けは古いページを見つけやすくして、ユーザーに読んでもらえる可能性があがります。
カスタム投稿タイプページ
カスタム投稿タイプとは自分で投稿タイプをカスタマイズするための機能です。ブログなどの通常投稿ページとは別に時系列データを持った記事を書きたいときに利用されます。例えば、コーポレートサイトでは会社のブログとは別に最新情報を作るときはカスタム投稿タイプを使います。
カスタム投稿タイプにも優先順位があり、ファイル名で決まります。
- archive-[posttype].php
- archive.php
- page.php
- index.php
カスタムタクソノミーページ
カスタムタクソノミーとはカスタム投稿タイプにカテゴリーを追加したものです。また、タグも設定することができます。最初に設定すれば、カテゴリーとタグと同じように扱うことができます。優先順位は以下の通りです。
- taxonomy-[taxonomy]-[term].php
- taxonomy-[taxonomy].php
- taxonomy.php
- archive.php
- index.php
テンプレート階層が必要な理由
WordPressでテンプレート階層が必要な理由として、開発期間を短縮するという目的のためです。ページが同じ構成であるならば、テンプレートファイルとして流用することで開発期間を短縮することができます。
つまり、ページごとにURLを取得する必要もないため、ファイル構成もシンプルになります。共通する部分をパーツ化して、その部分を必要な時に関数を使って呼び出したり、テンプレートファイルとして流用すればファイル数も少なくなります。
開発の効率化、ディレクトリのスリムにするために、テンプレート階層を使って実現しています。
まとめ
Webからダウンロードしたテーマを使う際には意識する必要はありません。しかし、自分でテーマを作ろうと考えている方はテンプレート階層を理解することで適切なテンプレートを選択できます。
テンプレート階層はWordPressで効率的にWebページを作成するために重要です。また、ファイル名を間違えたり、優先順位を意識していないと表示させたいテンプレートを表示させることができません。
テンプレート階層の優先順位はWordPress Codexで確認できます。テンプレートファイルを作る際には確認して下さい。