WordPress関数&テンプレートタグ一覧

Webデザイン・DTPデザイン

  • 公開日
  • 最終更新日

エンプロススタッフ

WordPressでテーマを作成するには、WordPress関数やテンプレートタグを覚える必要があります。

いきなりテンプレートタグを覚えてもいいのですが、意味もわからず丸暗記になってしまうので他の関連することと一緒に覚えることが大変です。

テンプレートタグや関数を覚える前に知っておきたいこと

  • テンプレートタグやWordPress関数について
  • 出力と取得の違い

テンプレートタグやWordPress関数について

WordPressを勉強していくと、テンプレートタグやWordPress関数、インクルードタグなどという語句が出てきます。この語句が何かよくわからなくて混乱する場合があるので、整理しておきます。

例えば、bloginfo()はテンプレートタグであり、大分類で言うとWordPress関数になります。

大分類中分類小分類
WordPress関数テンプレートタグインクルードタグ
条件分岐タグ
その他のタグ
プラグイン固有の関数
その他の関数
PHP関数

WordPress関数とテンプレートタグは厳密にいうと違いがありますが、WordPressの習い始めは、ほぼ同じことと覚えておいてもいいでしょう。

WordPress関数

WordPress専用のPHPで機能する関数。テンプレートタグはWordPress関数の中の一部。

テンプレートタグ

WordPress関数の中でもテーマのテンプレート内で使用を目的として作られた関数。

インクルードタグ

テンプレートファイルの中で他のテンプレートファイルを読み込むタグ

get_header() (テンプレートファイルheader.phpを読み込むタグ)
get_footer() (テンプレートファイルfooter.phpを読み込むタグ)

使用例
<?php get_header(); ?>
// header.phpに記述してあるコードを表示します

<?php get_footer(); ?>
// footer.phpに記述してあるコードを表示します
条件分岐タグ

ページの種類や属性、条件によって処理を分岐するタグ

is_home() (トップページかどうかを判断する条件分岐タグ)

使用例
<?php if( is_home() ): ?>
  // トップページの時に表示
  このページはトップページです。
<?php else: ?>
  // トップページ以外の時に表示
  このページはトップページではありません。
<?php endif; ?>

出力と取得の違い

初心者の場合、出力と取得の違いについてわからないまま学習を続ける場合が多く、つまづくことが多いです。曖昧なままにならず出力と取得という言葉について意味の理解をつけていきましょう。出力と取得の違いは下記の表の様なイメージです。

出力取得
画面で起きること画面に表示する画面に表示しない
人間に例えると声に出す頭の中にインプットする

出力と取得のWordPressで使われるテンプレートタグ・関数の例

出力取得
タイトルthe_title()get_the_title()
パーマリンクthe_permalink()get_permalink()
もしくは
get_the_permalink()
コンテンツthe_content()get_the_content()
投稿時間the_time()get_the_time()
出力と取得のWordPressで使われるテンプレートタグ・関数の例
  • the_ → 出力
  • get_ → 取得

WordPressの場合は上記の様になっていることが多いです。ただし、すべてその法則が当てはまるわけではないので、あくまでその傾向が高いと思っていてください。

これから出てくるテンプレートタグに注目して、このタグは出力か取得か考える癖をつけてると出力と取得を身につけることができます。

出力させる命令echo

WordPressで使われているPHPという言語は、echoが出力をする命令になります。実際のechoの使用例は下記のようなものになります。WordPressでもPHPでも頻出する命令なので、必ず覚えましょう。

<?php echo 'エンプロス'; ?>
// 画面ではエンプロスと表示します

<?php echo home_url(); ?>
// サイトアドレス(URL)に記載しているパスが出力されます

出力 = echo 取得と覚える

プログラムを作っていくと取得したいものを表示したいシーンが出てきます。その際に、一旦取得したものをechoを使って出力します。

例えば、WordPressのテンプレートタグにhome_url()というサイトアドレス(URL)を取得するテンプレートタグがあります。

NG例
<?php home_url(); ?>
// この状態では取得しているだけで何も実行することができないので使えない

OK例1
<?php echo home_url(); ?>
// 取得したサイトアドレス(URL)を出力します

OK例2
<?php $url = home_url(); ?>
// 取得したサイトアドレス(URL)を$urlという変数に格納します

<?php echo $url; ?>
// 変数$urlに格納したサイトアドレス(URL)を出力します

OK例1とOK例2は同じ内容が出力されます。

出力 = echo 取得

とお伝えしましたが、WordPressのテンプレートタグで多く使われているthe_から始まるタグは、実はエスケープ処理が行われているなど、厳密にはイコールになっていないことが多いです。セキュリティ面からもできるだけthe_を使って出力することをおすすめします。

記事のタイトルを出力
出力パターン1
<?php the_title(); ?>
// 記事のタイトルを出力

出力パターン2
<?php echo get_the_title(); ?>
// 記事のタイトルを取得して出力

記事のタイトルを取得して、$titleの変数に格納する
<?php $title = the_title( '', '', false ); ?>
// 

サイトの基本情報を出力するテンプレートタグ

サイトのタイトルbloginfo( ‘name’ )
キャッチフレーズbloginfo( ‘description’ )
サイトアドレス(URL)の取得home_url()
サイトのタイトル
<?php bloginfo( 'name' ); ?>

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

サイトアドレスの出力
<?php echo home_url(); ?>
// サイトアドレス(URL)に記載しているパスが出力されます

bloginfo()というテンプレートタグは、echoがありませんが出力するタグになります。

取得だけしたいとき

出力取得
サイトのタイトルbloginfo( ‘name’ )get_bloginfo( ‘name’ )
キャッチフレーズbloginfo( ‘description’ )get_bloginfo( ‘description’ )

出力せずに一旦取得だけしたいときは、get_から始めます。ただし、get_bloginfo()を使うことは、もう少し難易度があがってからになるので、一旦は上記の出力する3つのテンプレートタグを優先して覚えてください。

URLを出力するテンプレートタグ

サイトアドレス(URL)を取得
管理画面 → 設定 → 一般設定 → サイトアドレス (URL)に入力されたURL
home_url()
テーマディレクトリまでのURLを取得(親テーマ)get_template_directory_uri()
テーマディレクトリまでのURLを取得(子テーマ)get_stylesheet_directory_uri()
テーマディレクトリまでのURLを取得
(子テーマがある場合は、親テーマを上書きする)
get_theme_file_uri()
サイトアドレスの出力
<?php echo home_url(); ?>
// サイトアドレス(URL)に記載しているパスが出力されます
// 例:https://xxxxx.com

テーマディレクトリまでのURLを出力(親テーマ)
<?php echo get_template_directory_uri(); ?>
// 例:https://xxxxx.com/wp-content/themes/(テーマファイル名)

テーマディレクトリまでのURLを出力(子テーマ)
<?php echo get_stylesheet_directory_uri(); ?>
// 例:https://xxxxx.com/wp-content/themes/(テーマファイル名)-child

テーマディレクトリまでのURLを出力(子テーマがある場合は、親テーマを上書きする)おすすめ!!
<?php echo get_theme_file_uri(); ?>
// 例:親テーマのみの場合
// https://xxxxx.com/wp-content/themes/(テーマファイル名)
// 例:子テーマがあり、親テーマと同じファイル名のファイルを読み込む場合
// https://xxxxx.com/wp-content/themes/(テーマファイル名)-child

書籍などでは上記のような使い方が紹介されていますが、このような書き方ではJavaScriptなどを使用した悪意のあるコードが書かれていた場合にセキュリティ面で脆弱です。

esc_url()関数をつかって、無効化することが理想です。

// セキュリティ面で脆弱
<?php echo home_url(); ?>
// 悪意のあるコードをesc_url()でエスケープ処理をしてくれるので、安全
<?php echo esc_url( home_url() ); ?>

// セキュリティ面で脆弱
<?php echo get_theme_file_uri(); ?>
// 悪意のあるコードをesc_url()でエスケープ処理をしてくれるので、安全
<?php echo esc_url( get_theme_file_uri() ); ?>

esc_url()でエスケープ処理をすることは重要ですが、学習初期の段階はhome_url()やget_theme_file_uri()などを覚えることを優先しておくといいでしょう。

記述が必須のWordPress関数

</head>の前にWordPressで必要なコードを出力wp_head()
</body>の前にWordPressで必要なコードを出力wp_footer()

この2つのコードは必ずテーマファイル内に記述してください。この関数がないとプラグインが機能しなかったり不具合が発生します。

<head>
  // 省略
  <?php wp_head(); ?>
</head>
<body>
  // 省略
  <?php wp_footer(); ?>
</body>

インクルードタグ

header.phpを呼び出すget_header()
footer.phpを呼び出すget_footer()
sidebar.phpを呼び出すget_sidebar()
任意のテンプレート.phpを呼び出すget_template_part()

各ページで同じパーツを採用するのに、インクルードタグは便利なタグになります。

<?php get_header(); ?>
// header.phpを呼び出す

<?php get_footer(); ?>
// footer.phpを呼び出す

get_header()とget_footer()によく似ているテンプレートタグがあるので、注意が必要です。

似ているので間違えやすい関数
get_header()とwp_head()
<?php get_header(); ?>
// header.phpを呼び出すので、get_header

<?php wp_head(); ?>
// <head>タグの中に記述するので、wp_head

LINEをつかって友達や家族にこの記事を教える

シェアボタン

お問い合わせ

エンプロスの職業訓練についてご不明な方は、まずは学科・コース入校から就職までよくある質問をご覧ください。

  • 職業訓練のエンプロスについて、ご質問ご不明点などございましたら、下記のお問い合わせフォームからお問い合わせください。お問い合わせについては、2営業日以内にご返答いたします。

    お問い合わせフォーム
  • 営業時間
    8:50〜18:00
    定休日
    土日祝
    TEL
    079-287-1000