テンプレートタグとは何ですか?

テンプレートタグは、WordPressにデータベースから何かを取得するよう指示するコードの一部です。これは3つのコンポーネントに分かれています:

  • PHPコードタグ
  • WordPress関数
  • オプションのパラメータ

テンプレートタグを使用して、別のテーマファイルやデータベースからの情報を呼び出すことができます。

例えば、テンプレートタグget_header()は、WordPressにheader.phpファイルを取得して現在のテーマファイルに含めるよう指示します。同様に、get_footer()はWordPressにfooter.phpファイルを取得するよう指示します。

他にもさまざまな種類のテンプレートタグがあります:

  • the_title() – WordPressにページまたは投稿のタイトルをデータベースから取得して含めるよう指示します。
  • bloginfo( 'name' ) – WordPressにブログのタイトルをデータベースから取得してテンプレートファイルに含めるよう指示します。

最後の例をよく見ると、括弧の間にパラメータがあることがわかります。パラメータは2つのことを可能にします:

  • 1. 特定の情報を要求すること
  • 2. 情報を特定の方法でフォーマットすること。

パラメータについては以下で詳しく説明します。データの表示方法についてWordPressに特定の指示を送信できることを知っておくと便利です。

テンプレートタグを使用する理由

特定のコンテンツのコードをカプセル化することで、テンプレートタグはテーマファイルにさまざまなテンプレートの部分を簡単に含めることができ、テーマの維持も容易にします。

1つのheader.phpファイルを作成し、single.phppage.phpfront-page.phpなどのすべてのテーマテンプレートがその1つのテーマファイルをget_header()を使用して参照する方が、各テーマファイルにコードをコピー&ペーストするよりもはるかに簡単です。また、メンテナンスも容易になります。header.phpファイルに変更を加えると、その変更は自動的に他のすべてのテーマファイルに反映されます。

テンプレートタグを使用するもう1つの理由は、動的データ、つまりデータベースからのデータを表示するためです。ヘッダーにtitleタグを手動で含めることができますが、次のように:

  1. <title>My Personal Website</title>

しかし、これを行うと、ウェブサイトのタイトルを変更したいときにテーマを手動で編集する必要があります。代わりに、bloginfo( 'name' )テンプレートタグを含める方が簡単で、これによりデータベースからサイトタイトルを自動的に取得できます。これで、テーマテンプレートをハードコーディングするのではなく、WordPressでサイトのタイトルを変更できるようになります。

テンプレートタグの使用方法

テンプレートタグの使用は非常に簡単です。任意のテンプレートファイルで、テンプレートタグを呼び出すために1行のPHPコードを印刷するだけでテンプレートタグを使用できます。header.phpファイルを印刷するのは次のように簡単です:

  1. get_header();

パラメータ

一部のテンプレートタグでは、パラメータを渡すことができます。パラメータは、データベースから取得する内容を決定する追加の情報です。

例えば、bloginfo()テンプレートタグでは、WordPressに取得したい特定の情報を指示するパラメータを渡すことができます。ブログ名を印刷するには、「name」というパラメータを渡すだけです:

  1. bloginfo( 'name' );

ブログが実行しているWordPressのバージョンを印刷するには、「version」というパラメータを渡します:

  1. bloginfo( 'version' );

各テンプレートタグによってパラメータは異なります。パラメータのリストとその機能は、コードリファレンスにある特定のテンプレートタグページで確認できます。

ループ内でのテンプレートタグの使用

多くのテンプレートタグは、WordPressループ内で機能します。これは、ループ内の指示に基づいてユーザーが見るページを生成するPHPの「ループ」の一部としてテンプレートファイルに含まれることを意味します。

WordPressループは次のように始まります:

  1. if ( have_posts() ) :
  2. while ( have_posts() ) :
  3. the_post();

ループ内で機能するテンプレートタグは、以下のループの終了セクションの前の中間エリアに配置する必要があります:

  1. endwhile;
  2. else :
  3. _e( 'Sorry, no posts matched your criteria.', 'devhub' );
  4. endif;

ループ内に含める必要があるテンプレートタグのいくつかは

一部の関数がループを必要とする主な理由は、グローバル投稿オブジェクトが設定される必要があるからです。

使用したいテンプレートタグがループ内にある必要がない場合

それなら、サイドバー、ヘッダー、またはフッターテンプレートファイルなど、任意のファイルに配置できます。

これらは通常、グローバル投稿オブジェクトを必要としない関数です。

関連情報