テンプレートファイル

2020.03.31 2020.04.02

TOPICS

翻訳元記事はこちらです。

テンプレートファイルはWordPressテーマの至る所で使用されていますが、まずは用語を覚えておきましょう。

テンプレート用語

「テンプレート」という用語は、WordPressのテーマで作業する際に、さまざまな方法で使用されています。

テンプレートファイル

WordPressのテーマはテンプレートファイルで構成されています。これらは、HTML、テンプレートタグ、PHPコードが混在したPHPファイルです。

テーマを作成する際には、テンプレートファイルを使用して、ウェブサイトの様々な部分のレイアウトやデザインに影響を与えます。
例えば、ヘッダーを作成するために header.php テンプレートを使用したり、コメントを含めるために comments.php テンプレートを使用したりします。

誰かがあなたのウェブサイトのページを訪問すると、WordPress はリクエストに基づいてテンプレートを読み込みます。
テンプレートファイルによって表示されるコンテンツの種類は、テンプレートファイルに関連付けられた投稿タイプによって決まります。
テンプレート階層では、リクエストの種類やテーマ内にテンプレートが存在するかどうかに基づいて、WordPress がどのテンプレートファイルを読み込むかを説明しています。
その後、サーバーはテンプレート内のPHPを解析し、訪問者にHTMLを返します。

最も重要なテンプレートファイルはindex.phpで、特定のテンプレートがテンプレート階層で見つからない場合に使用されるテンプレートです。
テーマに必要なのはindex.phpテンプレートだけですが、一般的にテーマには異なるコンテンツタイプやコンテキストを表示するために多数のテンプレートが含まれています。

テンプレートの部品

テンプレートの部品とは、サイトヘッダーなどの別のテンプレートの一部として含まれているテンプレートの一部のことです。テンプレートの部品は複数のテンプレートに埋め込むことができ、テーマの作成を簡単にすることができます。一般的なテンプレート部品には以下のようなものがあります。

上記のテンプレートファイルはWordPressでは特殊なケースで、ページの一部分だけに適用されますが、いくつでもテンプレート部品を作成して、他のテンプレートファイルに含めることができます。

WordPressの共通テンプレートファイル

index.phpメインのテンプレートファイル。すべてのテーマに必須です。
style.cssメインのスタイルシート。すべてのテーマで必須で、テーマの情報ヘッダーを含みます。
rtl.cssウェブサイトの言語のテキストの方向が右から左の場合、右から左へのスタイルシートが自動的に含まれます。
comments.phpコメントのテンプレート
front-page.phpフロントページのテンプレートは、Admin > 設定 > 表示でどのような設定をしても、存在する場合は常にサイトのフロントページとして使用されます。
home.phpホームページテンプレートは、デフォルトではフロントページになっています。WordPressで静的なフロントページを使用するように設定していない場合は、このテンプレートを使用して最新の投稿を表示します。
header.phpヘッダーテンプレートファイルには通常、サイトのドキュメントタイプ、メタ情報、スタイルシートやスクリプトへのリンク、その他のデータが含まれています。
singular.phpsingle.phpが見つからない場合は投稿用テンプレートを、page.phpが見つからない場合はページ用テンプレートを使用します。singular.phpが見つからない場合はindex.phpが使用されます。
single.php個別投稿のテンプレートは、訪問者が個別投稿をリクエストしたときに使用します。
single-{post-type}.php訪問者がカスタム投稿タイプの単一投稿をリクエストしたときに使用される単一投稿テンプレートです。
たとえば、single-book.phpbook という名前のカスタム投稿タイプからの単一投稿を表示するために使用されます。index.phpは、カスタム投稿タイプの特定のクエリテンプレートが存在しない場合に使用されます。
archive-{post-type}.phpアーカイブ投稿タイプのテンプレートは、訪問者がカスタム投稿タイプのアーカイブをリクエストしたときに使用されます。たとえば、archive-books.php は、books という名前のカスタム投稿タイプの投稿のアーカイブを表示するために使用されます。archive-{post-type}.phpが存在しない場合は、archive.phpテンプレートファイルが使用されます。
page.phpページテンプレートは、訪問者が個別のページをリクエストする際に使用しますが、これは組み込みのテンプレートです。
page-{slug}.phpページスラッグテンプレートは、訪問者が特定のページをリクエストするときに使用されます。例えば、”about “スラッグ(page-about.php)を持つページなどです。
category.phpカテゴリテンプレートは、訪問者がカテゴリ別に投稿をリクエストする際に使用します。
tag.phpタグテンプレートは、訪問者がタグで投稿をリクエストする際に使用します。
taxonomy.phpタクソノミータームテンプレートは、訪問者がカスタムタクソノミーのタームをリクエストするときに使用されます。
author.php著者ページのテンプレートは、訪問者が著者ページを読み込んだときに使用されます。
date.php日付/時刻テンプレートは、投稿が日付や時刻でリクエストされた場合に使用されます。例えば、以下のスラッグで生成されたページです。
http://example.com/blog/2014/
http://example.com/blog/2014/05/
http://example.com/blog/2014/05/26/
archive.phpアーカイブテンプレートは、訪問者がカテゴリ、著者、日付で投稿をリクエストする際に使用されます。
注意: category.phpauthor.phpdate.phpのような特定のテンプレートが存在する場合、このテンプレートは上書きされます。
search.php検索結果テンプレートは、訪問者の検索結果を表示するために使用されます。
attachment.php添付ファイルテンプレートは、画像、PDF、またはその他のメディアファイルのような単一の添付ファイルを表示するときに使用されます。
image.php画像添付テンプレートは、attachment.phpをより具体的にしたもので、1枚の画像添付ファイルを表示する際に使用します。存在しない場合、WordPress は代わりに attachment.php を使用します。
404.php404テンプレートは、WordPressで訪問者のリクエストにマッチする投稿やページなどのコンテンツが見つからない場合に使用されます。

テンプレートファイルの使用

WordPressのテンプレート内では、テンプレートタグを使用して情報を動的に表示したり、他のテンプレートファイルを含めたり、サイトをカスタマイズすることができます。

例えば、index.phpには、最終的に生成されたページに他のファイルを含めることができます。

特定のテンプレートをページに含めるためのWordPressテンプレートタグの例です。

<?php get_sidebar(); ?>
<?php get_template_part( 'featured-content' ); ?>
<?php get_footer(); ?>

テンプレートタグについては、テンプレートタグのページを参照してください。

部分テンプレートを表示させる方法については、テーマファイルとディレクトリのリンクのセクションを参照してください。