WordPressテンプレート階層の概要
公開: 2019-12-11WordPressユーザーが人生のある時期に尋ねる重要な質問の1つは、次のとおりです。WordPressテーマは、表示されているコンテンツに応じて、どのように異なるページを表示するのでしょうか。
この質問は、完全に合法であることに加えて、非常に興味深いものです。 WordPressは、レンダリングしようとしているコンテンツを識別し、そのタイプに応じて、いずれかのテンプレートを使用できます。 WordPressのテーマは、動的要素用のJavaScriptとスタイルと色用のCSSを備えた、コンテンツタイプごとの特定のテンプレートのセットにすぎません。
完璧ですが…WordPressテンプレートは実際にどのように機能しますか? これは、この投稿全体を通して段階的に見ていくものです。
ただし、始める前に、この質問に対する答えを示した写真をお見せしましょう。

これはWordPressテンプレート階層です。 それに関するすべての情報は、公式ドキュメントであるWordPressCodexにあります。 このクールなWebサイトで、この階層を操作することもできます。
基本的に、WordPressはテンプレートの階層を使用してコンテンツをレンダリングします。 つまり、WordPressは、アクティブになっているテーマ内で特定のPHPファイルを検索します。 存在する場合、WordPressはそのファイルを使用してコンテンツをレンダリングします。これをテンプレートと呼びます。 そうでない場合、WordPressは階層内で次に一般的なテンプレートを探します。 存在する場合、WordPressはそれを使用します。 それ以外の場合、WordPressは階層内の次のテンプレートを探します…など。 WordPressがテーマ内の特定のテンプレートファイルを見つけることができない場合、すべてのテンプレートの中で最も一般的なデフォルトのindex.phpファイルを使用します。
それでは、最も一般的なWordPressコンテンツのいくつかのテンプレート階層内でさらに詳しく見ていきましょう。
ページテンプレート
WordPressがページと単純なコンテンツタイプのレンダリングに使用するテンプレートを見てみましょう。
投稿とカスタム投稿タイプ
WordPressは、テーマ上の次のPHPファイルを調べて、ブログ投稿またはカスタム投稿タイプをレンダリングします。
-
single-{post-type}-{slug}.php:特定の投稿または特定の投稿タイプに特定のテンプレートが必要な場合は、テーマにこのPHPファイルを作成する必要があります。 その名前には、投稿タイプ名({post-type})が含まれます。これは、投稿またはその他の名前(WooCommerceを使用している場合はproduct )にすることができます。 また、テンプレートの名前で、スラッグまたはパーマリンクを入力し、必要な名前を付ける必要があります。 たとえば、この投稿に特定のテンプレートを使用する場合は、single-post-introduction-to-the-wordpress-template-hierarchy.phpファイルを作成する必要があります。 -
single-{post-type}.php:特定の投稿タイプのすべてのコンテンツ(すべての投稿またはすべての製品)に影響を与える場合は、このテンプレートを使用します。このテンプレートの名前には、投稿タイプの名前のみが含まれます。 -
single.php:WordPressはこのテンプレートを使用して、単一のコンテンツ(特定の投稿、特定の製品など)をレンダリングします。 -
singular.php:これは、あらゆる種類の単一コンテンツをレンダリングするためのもう1つのトップレベルテンプレートです。 -
index.php:上記のいずれも見つからなかった場合、WordPressはこの汎用テンプレートを使用してコンテンツをレンダリングします。
WordPressテーマディレクトリには、WordPressテーマの例が何千もあります。 1つをダウンロードして、学習演習として、そのPHPファイルを調べて、先ほど提示したテンプレートを特定することをお勧めします。
そうすることで、WordPressテンプレートの階層内でどのテンプレートを使用しているかを理解し、これらの各テンプレートにどのようなコンテンツがあるかを確認できます。 間違いなく、WordPressのテーマについて学びたいのであれば、これは必須のことです。 さらに、無料です!
通常のページ
投稿や他の投稿タイプと同様に、WordPressはテンプレートの階層を使用してページをレンダリングします。
- 選択したテンプレート:ページを編集するときにページ属性ボックスから特定のテンプレートを選択した場合、そのテンプレートは常に他のすべてのテンプレートよりも優先されます。 ここでカスタムテンプレートの作成方法を学ぶことができます。
-
page-{slug}.php:特定のページに独自のテンプレートを持たせたい場合は、名前にページのスラッグが含まれるPHPファイルにそのテンプレートを作成します。 -
page-{id}.php:テンプレートが適用されるWordPressページIDを直接使用することもできます。 -
page.php:このテンプレートは、階層内の以前のテンプレートの1つがすでに適用されていない限り、すべてのWordPressページに適用されます。 -
singular.php:単一のテンプレートは、すべてのページ、投稿、製品などのデフォルトのテンプレートです。 WordPressのほとんどのテーマにはすでにpage.phpテンプレートが含まれているため、このテンプレートが適用されることはめったにありません。 -
index.php:いつものように、これはWordPressのデフォルトのフォールバックテンプレートです。
ここで、前にダウンロードしたテーマをもう一度確認してみてください。ここに表示される他のファイルについてもう少し理解していることがわかります。 確かに、ページテンプレートのPHPファイルを識別できるようになりました。
特別ページ
WordPressには、コンテンツをレンダリングするために特定のテンプレートを利用する他の特別なページがあります。 この例は、Webサイトのメインページです。 メインページは、[閲覧]サブメニューの[WordPress設定]で選択されていることに注意してください。 そのページには、次のテンプレート階層が使用されます。

-
front-page.php:静的ページをWordPressのメインページとして使用する場合、最初にfront-page.phpテンプレートを適用しようとします。 -
home.php:前のテンプレートが見つからない場合、WordPressはこのテンプレートを使用しようとします。 このテンプレートは、メインページとして静的ページを選択する代わりに、最新の投稿を表示するオプションを選択した場合にも使用されます。 -
index.php:繰り返しますが、デフォルトのテンプレートは常に存在します。
WordPressの検索結果を表示するページも、独自のテンプレートを持つことができる特別なページです。 これを行うには、 search.phpテンプレートを使用できます。 テーマで定義されていない場合は、通常どおりindex.phpが使用されます。
最後に、Webサイトが404エラーを返したときに表示されるページは、特定のWordPressテンプレートを使用して構成することもできます。 テーマに404.phpファイルを作成する必要があります。そうすると、このテンプレートが適用されます。
アーカイブ用のテンプレート
これまで、単一コンテンツのテンプレートを見てきました(検索結果の場合を除く)。 しかし、WordPressにはアーカイブもあり、1ページに複数の要素をレンダリングする可能性があります。 この場合、WordPressが使用するテンプレートの階層を見てみましょう。
カテゴリとタグ
WordPressは、カテゴリに次のテンプレート階層を使用します。
-
category-{slug}.php:このテンプレートは、特定のカテゴリに属するコンテンツ(通常は投稿)のリストをレンダリングするために使用されます。 特に、PHPファイルの名前にスラッグが表示されるカテゴリをレンダリングするときに使用されます。 -
category-{id}.php:スラッグの代わりにカテゴリIDを使用したい場合は、それを行うこともできます。 たとえば、テンプレートをカテゴリ13に適用する場合は、category-13.phpという名前のテンプレートファイルを作成します。 -
category.php:すべてのカテゴリのデフォルトテンプレート。 -
archive.php:これはWordPressのアーカイブ用の最も一般的なテンプレートです。 -
index.php:繰り返しになりますが、テーマに具体的なテンプレートが含まれていない場合、WordPressはデフォルトでこのファイルになります。
次のテンプレート階層がタグに使用されます。
-
tag-{slug}.php:タグがinterviewと呼ばれる場合、WordPressでそのタグの特定のテンプレートを設計する場合に備えて、tag-interview.phpテンプレートを使用できます。 -
tag-{id}.php:タグIDを使用してテンプレートを定義することもできます。 -
tag.php:category.phpと同様に、これはタグの汎用テンプレートです。 -
archive.php:繰り返しますが、上記のいずれも存在しない場合は、このテンプレートが使用されます。 -
index.php:いつものように、これはフォールバックテンプレートです。
カスタム投稿タイプとカスタム分類
カスタムコンテンツタイプがある場合は、テンプレートarchive-{post_type}.phpを使用できます。ここで、 post_typeはカスタム投稿タイプのスラッグです。 これにより、その投稿タイプのコンテンツのリストが表示されます。
カスタム分類法の場合、WordPressは次のテンプレート階層を使用します。
-
taxonomy-{taxonomy}-{term}.php:WordPressにvideogamesというカスタム分類法があり、その分類法内でスポーツという用語の特定のデザインのテンプレートを作成する場合は、ファイルtaxonomy-videogames-sports.phpを作成する必要があります。taxonomy-videogames-sports.phpは、そのテンプレートを使用します。 -
taxonomy-{taxonomy}.php:すべての分類用語に同じテンプレートを使用する場合は、前の例のtaxonomy-videogames.phpを使用します。 -
taxonomy.php:これはすべての分類法のデフォルトテンプレートです。 -
archive.php:上記のテンプレートが存在しない場合、これが適用されます。 -
index.php:繰り返しますが、これはデフォルトのフォールバックテンプレートです。
これらすべての説明により、WordPressテーマでテンプレートを作成および識別するために必要なすべてのものがすでに揃っているはずです。
総括する
WordPressテンプレートの階層を理解することは、テーマを理解し、独自のテーマを開発するための鍵です。 これを見て、WordPressで使用するテーマのPHPコードを変更し始めたときに、自信をつけるためにどのように機能するかを知ることは決して害にはなりません。
他にもいくつかのテンプレートがありますが、あまり使用されません。 とにかく、WordPressCodexのドキュメントをいつでも確認できることを忘れないでください。 ここでは説明されていないものがすべて見つかります。
このすべてについてどう思いますか? まだWordPressコンテンツにテンプレートを使用していますか、それともすでにすべてのデザインをブロックで構築していますか? 投稿の最後に到達した場合は、下にコメントを残すことを忘れないでください。WordPressテンプレートの使用方法を知りたいです。
UnsplashのEdvardAlexanderRlvaagによる注目の画像。
