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() |
- 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をつかって友達や家族にこの記事を教える
シェアボタン