【WordPress】テンプレートタグとその使い方

テンプレートタグ

本記事ではWordPressのテンプレートタグについて解説し、よく使う重要なテンプレートタグと使用例を紹介します。

テンプレートタグとは

テンプレートタグとは、phpの関数です。ただし、WordPressの中だけで機能するものです。例えば、次に示すphp関数は、そのサイト名を表示します。(サイト名はWordPressの管理画面から設定されたもの。)

<?php bloginfo('name'); ?>

テンプレートタグの使用場所は、WordPressのテーマを作るためのphpファイルの中です。テーマ作るということは、Webサイトのフロントエンド(目に見える部分)を作るということであり、管理画面を通してデータベースで管理されているコンテンツを表示する必要があります。
その、サーバーサイドとの連携を簡単にするためにテンプレートタグというものが存在しているのです。

つまり、テンプレートタグとは、記事のタイトル、記事の内容、サムネイルを初め、あらゆる要素を出力するための欠かせないphp関数なのです。

よく使うテンプレートタグ

数あるテンプレートタグはいくつかの種類に分類できます。

  1. 他のテンプレートの読み込み
  2. サイト全体に関するもの
  3. 記事の属性に関するもの

他のテンプレートを読み込むためのテンプレートタグ

ワードプレスのテーマを作るとき、ページの部位、種類に応じてphpファイルを分割します。

参考記事:【WordPress】テンプレートやテンプレート階層とは何か?

例えば、ホームのページを作るための「front-page.php」から、サイトのヘッダー用の「header.php」を読み込むというようなことが頻繁に起こります。そんなとき、テンプレートタグを活用します。

<!-- ヘッダーを読み込む -->
<?php get_header(); ?>

<!-- フッターを読み込む -->
<?php get_footer(); ?>

<!-- サイドバーを読み込む -->
<?php get_sidebar(); ?>

<!-- 自作テンプレートパーツを読み込む -->
<?php get_template_part(); ?>

注意:読み込む前に、そのテンプレートがちゃんと作成されていることが条件です。

自作テンプレートパーツを読み込むためには、関数に引数を渡す必要があります。例えば、「template-parts」フォルダの中に、「category.php」テンプレートを自作したとすると、呼び出し時には次のように記述します。

<?php get_template_part('template-parts/category'); ?>

サイトの属性を表示するテンプレートタグ

次に、「サイト名」や「キャッチフレーズ」などのサイト全体の属性を表示するためのテンプレートタグを紹介します。

<!-- サイトのタイトル -->
<?php bloginfo('name'); ?>

<!-- キャッチフレーズ -->
<?php bloginfo('description'); ?>

<!-- 管理者のメールアドレス -->
<?php bloginfo('admin_email'); ?>

<!-- 記事のタイトル(ヘッダーのタイトルタグに記述) -->
<?php wp_title(); ?>

<!-- 投稿記事のアーカイブを表示 -->
<?php 
$args = array(
    'type' => 'monthly',
    'limit' => '',
    'order' => 'DESC',
);
wp_get_archives($args); 
?>

冒頭でも紹介した通り、bloginfo();は、管理画面の「設定→一般」で設定されている情報を表示することができます。’name’を引数に与えれば、サイトのタイトル、’description’を渡せば、キャッチフレーズになります。

また、wp_get_archives($args); のように、引数に配列を受け取るものもあります。アーカイブ記事を取得するための関数で、オプションで年別、月別、週別かを選べたり、表示数を制限できたりします。例では3つのオプションしか設定されていませんが、このほかにもたくさんのオプションを設定することができます。(詳しくはこちら

記事の属性を表示するテンプレートタグ

それぞれの記事は、いくつも属性を持っています。列挙すると次の通りです。

  • タイトル
  • サムネイル
  • 記事のリンク
  • カテゴリー
  • タグ
  • 作成日時
  • 更新日時
  • 本文

などです。これらの属性は、ワードプレス特有のループのなかで記述する必要があります。

<!-- タイトル -->
<?php the_title(); ?>
<!-- サムネイル -->
<?php the_post_thumbnail(); ?>
<!-- 記事のリンク -->
<?php the_permalink(); ?>
<!-- カテゴリー -->
<?php the_category(); ?>
<!-- タグ -->
<?php the_tags(); ?>
<!-- 作成日時 -->
<?php the_time('Y年m月d日'); ?>
<!-- 本文 -->
<?php the_content(); ?>

例えば、新着記事を一覧で表示する場合、表示する記事のタイトルやサムネイルなどは一つではありません。これを可能にするのがワードプレスループです。

ループは次のように記述します。

<?php if(have_posts()): while (have_posts()): the_post();?>

        <h2><?php the_title(); ?></h2>
                
<?php endwhile; endif; ?>

「もし、投稿があれば、投稿があるだけ表示します」という意味であり、例の場合ではh2タグに囲まれた、記事タイトルを複数表示されます。

Appendix

テンプレートタグは、テンプレート階層、ワードプレスループを密接な関係があります。これらはWordPressのテーマを作る上で基本的かつ最重要の概念なので、ぜひ習得してみてください。

参考記事:ワードプレスループについて
参考記事:テンプレート階層について
参考サイト:WordPress Codex[日本語版]テンプレートタグについて

参考文献:[改訂版]WordPress 仕事の現場でサッと使える! デザイン教科書[WordPress 5.x対応版]

WordPress 仕事の現場でサッと使える! デザイン教科書
著者:中島 真洋
価格:2905円(Kindle)