テンプレートタグ
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()
サイドバー、ヘッダー、フッターテンプレートファイルなど、好きなところに書くことができます。
これらのテンプレートタグは、グローバルポストオブジェクトを必要としません。