本記事ではWordPressのテンプレートタグについて解説し、よく使う重要なテンプレートタグと使用例を紹介します。
テンプレートタグとは
テンプレートタグとは、phpの関数です。ただし、WordPressの中だけで機能するものです。例えば、次に示すphp関数は、そのサイト名を表示します。(サイト名はWordPressの管理画面から設定されたもの。)
<?php bloginfo('name'); ?>
テンプレートタグの使用場所は、WordPressのテーマを作るためのphpファイルの中です。テーマ作るということは、Webサイトのフロントエンド(目に見える部分)を作るということであり、管理画面を通してデータベースで管理されているコンテンツを表示する必要があります。
その、サーバーサイドとの連携を簡単にするためにテンプレートタグというものが存在しているのです。
つまり、テンプレートタグとは、記事のタイトル、記事の内容、サムネイルを初め、あらゆる要素を出力するための欠かせないphp関数なのです。
よく使うテンプレートタグ
数あるテンプレートタグはいくつかの種類に分類できます。
- 他のテンプレートの読み込み
- サイト全体に関するもの
- 記事の属性に関するもの
他のテンプレートを読み込むためのテンプレートタグ
ワードプレスのテーマを作るとき、ページの部位、種類に応じて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対応版]