WordPressのテンプレートタグが覚えられないのでまとめてみた

自作のテーマを作っている人ならわかってもらえると思いますが、WordPressのテンプレートタグってなかなか覚えられない…。
そんなわけで、よく使うものをまとめてみました。

テーマまでのURL

テーマ内にある画像やスタイルシートを読み込むときには「<?php echo get_template_directory_uri();?>」を使います。

このタグには「https://ドメイン/wp-content/theme/テーマ名」が入っています。

■画像を表示するには下記のように記述
<img src="<?php echo get_template_directory_uri();?>"/○○○.jpg">
■「img」フォルダにある画像を表示する
<img src="<?php echo get_template_directory_uri();?>"/img/○○○.jpg">
■スタイルシートを読み込むには下記のように記述
<link rel="stylesheet" type="text/css" href="<?php echo get_template_directory_uri();?>/〇〇〇.css">

末尾に「/ (スラッシュ)」は付かないので、注意してください。

子テーマの場合

子テーマを使用している場合は「<?php echo get_stylesheet_directory_uri();?>」を使います。

このタグには「https://ドメイン/wp-content/theme/子テーマ名」が入っています。

■子テーマまでのパス
<?php echo get_stylesheet_directory_uri();?>
■子テーマディレクトリにある画像を表示する
<img src="<?php echo get_stylesheet_directory_uri();?>"/○○○.jpg">
■子テーマディレクトリのスタイルシートを読み込む
<link rel="stylesheet" type="text/css" href="<?php echo get_stylesheet_directory_uri();?>/〇〇〇.css">

子テーマから親テーマの画像やスタイルシートを読みたい時もありますよね。
そんな時は「<?php echo get_template_directory_uri();?>」を使います。

インクルード系

他のテンプレートファイルを読み込みたいときには「<?php get_template_part();?>」を使います。
一覧ページなどのループ文内で使うことが多いと思います。

■content.phpを読み込む
<?php get_template_part('content');?>
■「template-parts」フォルダ内の「content.php」を読み込む
<?php get_template_part('template-parts/content');?>

拡張子「.php」は記述しません。
このタグの便利なところは、絶対パス扱いなので、階層を気にしないで使えるところです。

下記のような階層があったとします。

sample-theme
├ index.php
├ author-bio.php
└ template-parts
 ├ content.php
 └ entry-tag.php

「index.php」で「template-parts」内の「content.php」を読み込むには、上記のように「<?php get_template_part(‘template-parts/content’);?>」と記述します。

では「template-parts」内の「content.php」で「template-parts」内の「entry-tag.php」を読み込みたいときはどうでしょう?

■「template-parts」内の「entry-tag.php」を読み込む
<?php get_template_part('template-parts/entry-tag');?>

同じフォルダ内なので「<?php get_template_part(‘entry-tag’);?>」と書きたくなるところですが、「<?php get_template_part(‘template-parts/entry-tag’);?>」なんですね。

「template-parts」内の「content.php」で1つ上の階層の「author-bio.php」を読み込むときは下記のようになります。

■「template-parts」内から1つ上の階層の「author-bio.php」を読み込む
<?php get_template_part('author-bio');?>

「現在のファイルは、この階層にいるから、あのファイルを読み込むには…」などと考えなくてもよいのです。

特定のファイルを読み込むタグ

「<?php get_template_part();?>」以外にも、特定のファイルを読み込むためのタグも用意されています。

■ヘッダー(header.php)を読み込む
<?php get_header();?>
■フッター(footer.php)を読み込む
<?php get_footer();?>
■サイドバー(sidebar.php)を読み込む
<?php get_sidebar();?>
■コメントフォーム(comments.php)を読み込む
<?php comments_template();?>
■検索フォーム(searchform.php)を読み込む
<?php get_search_form();?>

出力系

サイトの情報などを表示するときに使います。

サイト情報系

<?php bloginfo(‘〇〇’);?>、<?php echo get_bloginfo(‘〇〇’);?>のように括弧内にシングルクォーテーションを囲った引数の情報を出力します。
「get_」を付けるとPHPの値として渡すことができます。その場合、表示するには「echo」が必要になります。<?php echo get_bloginfo(‘〇〇’);?>

bloginfo(‘name’)

サイト名を表示します。(管理の「各種設定」→「一般設定」の「サイトのタイトル」)

bloginfo(‘description’)

キャッチフレーズを表示します。(管理の「各種設定」→「一般設定」の「キャッチフレーズ」)

bloginfo(‘url’)

サイトのURLを表示します。(管理の「各種設定」→「一般設定」の「サイトアドレス」)
※現在では非推奨になっているようで、次に紹介する「home_url()」が推奨されています

home_url()

サイトのURLを表示します。(管理の「各種設定」→「一般設定」の「サイトアドレス」)
適切でない文字列を除去してくれる「esc_url()」と一緒に「<?php echo esc_url(home_url());?>」のように使います。

投稿系

投稿や固定ページに関する情報や内容を表示します。
記事のループ処理内で使用しないと、予期せぬ表示をすることがあります。

ループ処理とは

一般には、同じことを繰り返し行う時に使う言葉ですが、WordPressでは下記のような記述があることをいいます。

<?php while(have_posts()):the_post();
    //ループする内容
endwhile;?>

固定ページや記事単体のページなど、特に繰り返して表示していなくてもループ処理は行われています。

the_title()

記事やページのタイトルを表示します。

the_content()

記事やページの本文を表示します。

the_excerpt()

記事やページの抜粋を表示します。

the_ID()

記事やページのIDを表示します。

the_author()

記事やページの投稿者を表示します。

the_permalink()

記事やページのURL(パーマリンク)を表示します。

the_category()

記事のカテゴリー(リンク付き)を表示します。

the_tags()

記事のタグ(リンク付き)を表示します。

the_terms()

記事のタクソノミーのタームを表示します。
カスタム投稿などに使用します。

これらは「bloginfo()」と同じように「get_」を付けるとPHPの値として渡すことができます。その場合、表示するには「echo」が必要になります。

まとめ

ここでは、よく使うもの、代表的なものを紹介しました。
他にもWordPressのタグはもっといっぱいあります。
ボクが知らないだけで、もっと便利なタグがあるかもしれません。いや、きっとあるんだろうなぁ。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です