テンプレートタグ
TOPICS
翻訳元記事はこちらです。
テンプレートタグは、データベースからコンテンツを取得するためにテーマ内で使用されます。コンテンツはブログのタイトルからサイドバーまで何でもあります。テンプレートタグは、コンテンツをテーマに取り込むのに好ましい方法です。
テンプレートタグを使えば、動的なコンテンツの表示ができ、複数のテーマファイルで使用できます。
テーマをより細かく、よりわかりやすいセクションに分けています。
テンプレートタグとは?
テンプレートタグとは、WordPress にデータベースから何かを取得するように指示するコードです。これは3つのコンポーネントに分かれています。
- PHPコードのタグ
- WordPress関数
- オプションの引数
テンプレートタグを使って、別のテーマファイルやデータベースからの情報を呼び出すことができます。
例えば、テンプレートタグ get_header()
は WordPress に header.php
ファイルを取得し、現在のテーマファイルに含めるように指示します。同様に、get_footer()
は WordPress に footer.php
ファイルを取得するように指示します。
他の種類のテンプレートタグもあります。
the_title()
– WordPress に、データベースからページや投稿のタイトルを取得し、それを含めるように指示します。bloginfo( 'name' )
– WordPress にブログのタイトルをデータベースから取得し、テンプレートファイルに含めるように指示します。
bloginfo()
の例を見ると、括弧の間にパラメータがあることがわかります。パラメーターを使うと、以下の2つのことができます。
- 指定した情報を引き出す
- 特定の方法でフォーマットする
パラメータについては以下で幅広く取り上げていますが、データをどのように表示させたいかについては、WordPress固有の指示を送ることができることを知っておくと便利です。
なぜテンプレートタグを使うのか?
特定のコンテンツの塊のコードをすべてカプセル化することで、テンプレートタグは、テーマファイルにテンプレートの様々な部分を含めることが非常に簡単になり、テーマを維持することができます。
一つのheader.php
ファイルを作成して、single.php
、page.php
、front-page.php
などのすべてのテーマテンプレートを、get_header()
を使って一つのテーマファイルに参照させる方が、それぞれのテーマファイルにコードをコピーして貼り付けるよりもはるかに簡単です。また、メンテナンスも簡単になります。header.php
ファイルに変更を加えると、その変更は自動的に他のすべてのテーマファイルに引き継がれます。
テンプレートタグを使用するもう一つの理由は、動的なデータ、つまりデータベースからのデータを表示するためです。ヘッダーには、以下のように手動でtitleタグを含めることができます。
<title>My Personal Website</title>
しかし、タイトルを直接コードに書いてしまうと、ウェブサイトのタイトルを変更したいときはいつでも手動でテーマファイルを編集する必要があります。
代わりに、自動的にデータベースからサイトタイトルを取得する bloginfo( 'name' )
テンプレートタグを含める方が簡単です。
これで、テーマテンプレートをハードコーディングする代わりに、WordPressでサイトのタイトルを変更することができるようになりました。
テンプレートタグの使い方
テンプレートタグの使い方はとてもシンプルです。どのテンプレートファイルでも、テンプレートタグを呼び出すためのphpコードを1行書くだけで、テンプレートタグを使用することができます。header.php
ファイルの読み込みは以下のように簡単にできます。
get_header();
引数
テンプレートタグの中には、パラメータを渡すことができるものがあります。パラメータとは、データベースから何を取得するかを決定する追加の情報です。
例えば、bloginfo()
テンプレートタグでは、WordPress に特定の情報を伝えるためのパラメータを渡すことができます。ブログ名を表示するためには、以下のようにパラメータ “name” を渡すだけです。
bloginfo( 'name' );
ブログが動作しているWordPressのバージョンを表示するには、「version」というパラメータを渡します。
bloginfo( 'version' );
各テンプレートタグでは、パラメータが異なります。パラメータのリストとその内容については、コードリファレンスの各テンプレートタグのページに記載されています。
ループ内でテンプレートタグを使用する
多くのテンプレートタグは WordPress のループ内で動作します。つまり、ループ内の指示に基づいて、ユーザーが見るページを生成するphpの「ループ」の一部としてテンプレートファイルに含まれているということです。
WordPressのループは以下のコードから始めます。
ループ内で動作するテンプレートタグは、ループ内に書く必要があります。
if ( have_posts() ) :
while ( have_posts() ) :
the_post();
endwhile;
else :
_e( 'Sorry, no posts matched your criteria.', 'devhub' );
endif;
以下のテンプレートタグは、ループ内に書く必要があります。
- the_content()
- the_excerpt()
- next_post()
- previous_post()
一部の関数でループを必要とする主な理由は、グローバルポストオブジェクトを設定する必要があるからです。
以下のテンプレートタグは、ループ内である必要はありません。
- wp_list_cats()
- wp_list_pages()
サイドバー、ヘッダー、フッターテンプレートファイルなど、好きなところに書くことができます。
これらのテンプレートタグは、グローバルポストオブジェクトを必要としません。