ヘッダーのロゴ

すぐに仕事で使えるIT技術情報メディア

現役エンジニアが厳選!WordPressテーマ開発に使うテンプレートタグ全集

投稿日:2024年04月23日(火) 更新日:2024年05月03日(金)
現役エンジニアが厳選!WordPressテーマ開発に使うテンプレートタグ全集|WordPress MAGAZINE ワードプレスマガジン|すぐに仕事で使えるIT技術情報メディア

みなさんこんにちは!エンジニアの高澤です!

今回はWordPressテーマ開発に使うテンプレートタグ全集について解説していきたいと思います。

テンプレートタグとはWordPressで用意された専用の関数のことをいいますが、このテンプレートタグはテーマ開発はもちろん、プラグイン開発などにも必ず使用する必須の知識になります。

必須なだけに、初心者エンジニアの方にとっては「テンプレートタグはたくさんありすぎて学習したいけど一体どのテンプレートタグがテーマ開発で必要なのか?」

また上級者エンジニアの方にとっては「テンプレートタグがたくさんありすぎて忘れてるから仕事ですぐに使えるチートシートが欲しい!」

といった問題やご要望があるかと思います。

今回の記事はそこを解決する構成で現役エンジニアのわたくし高澤が力を入れて執筆いたしました。

よろしければぜひ当記事をお仕事などにお役立ていただけましたら幸いです。

テンプレートタグとは

テンプレートタグとは、WordPressで用意された専用の関数のことをいいます。

WordPressのコアの内部では、WordPressのデータベースに保存されたデータを出力したり取得したりといったデータベース操作を簡単にしてくれるAPIという目的で、専用のテンプレートタグという関数を定義しています。

このテンプレートタグを使えば、以下のような関数一つ記述するだけで記事のタイトルや記事の本文などを簡単に表示することが可能です。

<!-- the_title(): 現在の投稿やページのタイトルを表示します。 -->
<h1><?php the_title(); ?></h1>

<!-- the_content(): 現在の投稿やページのコンテンツを表示します。 -->
<div class="entry-content">
    <?php the_content(); ?>
</div>

<!-- the_post_thumbnail(): 現在の投稿やページのアイキャッチ画像(投稿サムネイル)を表示します。 -->
<?php if ( has_post_thumbnail() ) : ?>
    <div class="post-thumbnail">
        <?php the_post_thumbnail(); ?>
    </div>
<?php endif; ?>

<!-- the_author(): 現在の投稿やページの著者を表示します。 -->
<p>投稿者: <?php the_author(); ?></p>

<!-- the_time(): 現在の投稿やページの投稿日時を表示します。 -->
<p>投稿日: <?php the_time('Y年m月d日'); ?></p>

<!-- wp_nav_menu(): ナビゲーションメニューを表示します。 -->
<?php wp_nav_menu( array( 'theme_location' => 'primary' ) ); ?>

上記コードのように、たった一つの関数を書くだけで必要なデータを表示することができてしまいます。

このテンプレートタグは数千ほどの非常に膨大な数があるので、すべてを習得することは現実的ではありません。

そのため、当記事では現役エンジニアであるわたくし高澤が本当にお仕事に必要な厳選したテンプレートタグをご紹介したいと思います。

テンプレートタグを知っておくメリット

テンプレートタグを知っておくべきメリットについて解説いたします。

筆者が考えるメリットは以下になります。

  • テーマを開発できる
  • プラグインを開発できる
  • データ処理の効率化や管理画面カスタマイズなどの応用力がつく

テンプレートタグを知っておくことで、問題なくテーマ開発をできるようになり、またフックというWordPress専用の仕組みと組み合わせればプラグインを開発することも可能です。

また、データ処理の効率化や管理画面カスタマイズなどの応用力がつき、WordPressを自由自在にカスタマイズすることができます。

テンプレートタグが定義されたコアファイル

テンプレートタグはWordPress本体に定義されているため使用することが可能です。

このテンプレートファイルが定義されているファイルは、WordPressコアファイルを構成するものの一つであるwp-includesファイル内のPHPファイルに定義されております。

具体的には以下になります。

  • wp-includes/general-template.php
  • wp-includes/author-template.php
  • wp-includes/bookmark-template.php
  • wp-includes/category-template.php
  • wp-includes/comment-template.php
  • wp-includes/link-template.php
  • wp-includes/post-template.php
  • wp-includes/post-thumbnail-template.php
  • wp-includes/nav-menu-template.php

上記内容を把握しておくことで、今後応用をきかせて実際に上記PHPファイルを開いて、どのような関数が定義されているのか、どのような処理が記述されているのかを確認して色々と対応することが可能となります。

WordPress構築で知っておくべきテンプレートタグ

それでは早速、WordPressのテーマ開発やプラグイン開発で知っとくべきテンプレートタグを解説していきたいと思います。

もしお仕事で必要になったらよろしければぜひ当記事をご確認いただきながら快適に開発をしていただけましたら幸いです。

それではジャンル別に確認していきましょう。

インクルード系

get_header()ヘッダーのテンプレートファイルを取得します。
get_footer()フッターのテンプレートファイルを取得します。
get_sidebar()サイドバーのテンプレートファイルを取得します。
get_template_part()テンプレートの一部分を取得します。
get_search_form()検索フォームのテンプレートを取得します。
get_template_directory()現在のテーマのディレクトリパスを取得します。
get_template_directory_uri()現在のテーマのディレクトリURIを取得します。
get_stylesheet_directory()アクティブなテーマのスタイルシートのディレクトリパスを取得します。
get_stylesheet_directory_uri()アクティブなテーマのスタイルシートのディレクトリURIを取得します。
locate_template()テンプレートファイルを探します。

コンテンツ系

the_content()現在の投稿またはページの本文を表示します。
the_excerpt()現在の投稿またはページの抜粋を表示します。
the_title()現在の投稿またはページのタイトルを表示します。
the_permalink()現在の投稿またはページのパーマリンクを表示します。
the_post_thumbnail()現在の投稿またはページのアイキャッチ画像を表示します。
the_category()現在の投稿のカテゴリーを表示します。
the_tags()現在の投稿のタグを表示します。
the_author()現在の投稿の著者を表示します。
the_time()現在の投稿の投稿日時を表示します。
the_modified_time()現在の投稿の最終更新日時を表示します。
comments_template()コメントテンプレートを表示します。
wp_link_pages()ページ分割を表示します。

タグ出力系

get_the_category()現在の投稿のカテゴリー情報を取得します。
get_the_tags()現在の投稿のタグ情報を取得します。
get_the_term_list()現在の投稿の指定されたタクソノミー(カテゴリーやタグなど)のリストを取得します。
the_category_list()現在の投稿のカテゴリーリストを表示します。
the_tags()現在の投稿のタグリストを表示します。
the_terms()現在の投稿の指定されたタクソノミー(カテゴリーやタグなど)のリストを表示します。
get_the_term_list()現在の投稿の指定されたタクソノミー(カテゴリーやタグなど)のリストを取得します。
get_the_tag_list()現在の投稿のタグのリストを取得します。
get_the_category_list()現在の投稿のカテゴリーのリストを取得します。
get_the_tags_list()現在の投稿のタグのリストを取得します。

条件分岐タグ系(クエリフラグ取得系)

is_singular()個別の投稿、固定ページ、または添付ファイルが表示されているかどうかをチェックします。
is_single()個別の投稿が表示されているかどうかをチェックします。
is_page()固定ページが表示されているかどうかをチェックします。
is_attachment()添付ファイルが表示されているかどうかをチェックします。
is_embed()埋め込みコンテンツが表示されているかどうかをチェックします。
is_archive()アーカイブページが表示されているかどうかをチェックします。
is_author()著者アーカイブページが表示されているかどうかをチェックします。
is_category()カテゴリーアーカイブページが表示されているかどうかをチェックします。
is_tag()タグアーカイブページが表示されているかどうかをチェックします。
is_tax()カスタムタクソノミーアーカイブページが表示されているかどうかをチェックします。
is_date()日付アーカイブページが表示されているかどうかをチェックします。
is_year()年別アーカイブページが表示されているかどうかをチェックします。
is_month()月別アーカイブページが表示されているかどうかをチェックします。
is_day()日別アーカイブページが表示されているかどうかをチェックします。
is_time()時間別アーカイブページが表示されているかどうかをチェックします。
is_post_type_archive()特定の投稿タイプのアーカイブページが表示されているかどうかをチェックします。
is_front_page()フロントページが表示されているかどうかをチェックします。
is_home()ホームページが表示されているかどうかをチェックします。
is_main_query()現在のクエリがメインのクエリかどうかをチェックします。
is_search()検索結果ページが表示されているかどうかをチェックします。
is_404()404エラーページが表示されているかどうかをチェックします。
is_paged()ページ送りがされているかどうかをチェックします。
is_preview()プレビューページが表示されているかどうかをチェックします。
is_robots()ロボットのアクセスを許可または拒否するためのrobots.txtファイルが表示されているかどうかをチェックします。
is_feed()フィードが表示されているかどうかをチェックします。
is_comments_popup()コメントポップアップウィンドウが表示されているかどうかをチェックします。
is_comment_feed()コメントフィードが表示されているかどうかをチェックします。
is_trackback()トラックバックが表示されているかどうかをチェックします。

投稿タイプの主なAPI

register_post_type()カスタム投稿タイプを登録します。
add_post_type_support()カスタム投稿タイプに機能を追加します。
remove_post_type_support()カスタム投稿タイプから機能を削除します。
post_type_supports()カスタム投稿タイプが特定の機能をサポートしているかどうかを確認します。
set_post_type()投稿の投稿タイプを設定します。
post_type_exists()特定の投稿タイプが存在するかどうかを確認します。
get_post_type()投稿の投稿タイプを取得します。
get_post_types()利用可能な投稿タイプの一覧を取得します。
get_post_type_archive_link()投稿タイプのアーカイブリンクを取得します。
get_post_type_object()投稿タイプオブジェクトを取得します。
is_post_type_hierarchical()投稿タイプが階層的かどうかを確認します。

カスタムフィールドの主なAPI

register_meta()カスタムフィールドのメタデータを登録します。
add_meta_box()投稿やページの編集画面にメタボックスを追加します。
remove_meta_box()投稿やページの編集画面からメタボックスを削除します。
add_post_meta()投稿にメタデータを追加します。
update_post_meta()投稿のメタデータを更新します。
delete_post_meta()投稿からメタデータを削除します。
get_post_meta()投稿のメタデータを取得します。
get_post_custom()投稿のカスタムフィールドの値を取得します。
get_post_custom_keys()投稿のカスタムフィールドのキーを取得します。
get_post_custom_values()投稿のカスタムフィールドの値を取得します。

タクソノミーの主なAPI

get_edit_term_link()編集画面へのリンクを取得します。
get_taxonomy()タクソノミーを取得します。
get_taxonomies()利用可能なタクソノミーの一覧を取得します。
get_term()タームを取得します。
get_the_term_list()投稿に関連付けられたタームのリストを取得します。
get_term_by()指定されたパラメータに基づいてタームを取得します。
the_terms()投稿に関連付けられたタームを表示します。
get_the_terms()投稿に関連付けられたタームを取得します。
get_term_children()指定された親タームの子タームを取得します。
get_term_link()タームのリンクを取得します。
get_terms()タームのリストを取得します。
is_taxonomy_hierarchical()タクソノミーが階層的かどうかを判定します。
taxonomy_exists()指定されたタクソノミーが存在するかどうかを確認します。
term_exists()指定されたタームが存在するかどうかを確認します。
register_taxonomy()タクソノミーを登録します。
register_taxonomy_for_object_type()タクソノミーを投稿タイプに関連付けます。
wp_get_object_terms()特定の投稿やタームのオブジェクトに関連付けられたタームを取得します。
wp_remove_object_terms()特定の投稿やタームからタームの関連付けを解除します。
wp_set_object_terms()特定の投稿やタームにタームを関連付けます。
wp_insert_term()タームを挿入します。
wp_update_term()タームを更新します。
wp_delete_term()タームを削除します。
wp_terms_checklist()タームのチェックボックスリストを表示します。

コメントの主なAPI

check_comment()コメントが有効かどうかを確認します。
get_approved_comments()承認されたコメントのリストを取得します。
get_comment()特定のコメントを取得します。
get_comments()コメントのリストを取得します。
get_default_comment_status()デフォルトのコメント状態を取得します。
get_lastcommentmodified()最後にコメントが更新された時刻を取得します。
get_comment_count()コメントの数を取得します。
wp_set_comment_cookies()コメントに関するクッキーを設定します。
sanitize_comment_cookies()コメントに関連するクッキーを検証して無効な場合にクリーンアップします。
wp_allow_comment()コメントが許可されているかどうかをチェックします。
get_comment_pages_count()コメントページの数を取得します。
wp_blacklist_check()コメントがブラックリストに含まれているかどうかをチェックします。
wp_count_comments()コメントの数をカウントします。
wp_delete_comment()コメントを削除します。
wp_trash_comment()コメントをゴミ箱に移動します。
wp_untrash_comment()コメントをゴミ箱から復元します。
wp_spam_comment()コメントをスパムとしてマークします。
wp_unspam_comment()コメントのスパムマークを解除します。
wp_get_comment_status()コメントの状態を取得します。
wp_transition_comment_status()コメントの状態を変更します。
wp_get_current_commenter()現在のコメント投稿者の情報を取得します。
wp_insert_comment()コメントを挿入します。
wp_filter_comment()コメントをフィルタリングします。
wp_throttle_comment_flood()コメントの連続投稿を制限します。
wp_new_comment()新しいコメントオブジェクトを作成します。
wp_set_comment_status()コメントの状態を設定します。
wp_update_comment()コメントを更新します。
wp_update_comment_count()コメント数を更新します。
discover_pingback_server_uri()ピンバックサーバーのURIを探します。
do_all_pings()すべてのピンバックを実行します。
do_trackbacks()トラックバックを実行します。
generic_ping()ジェネリックなピンバックを送信します。
pingback()ピンバックを送信します。
privacy_ping_filter()プライバシーピンバックフィルタリングを実行します。
trackback()トラックバックを送信します。
weblog_ping()ブログへのピンバックを送信します。
clean_comment_cache()コメントのキャッシュをクリーンアップします。
update_comment_cache()コメントのキャッシュを更新します。

コメントのカスタムフィールドAPI

add_comment_meta()コメントにメタデータを追加します。
get_comment_meta()コメントのメタデータを取得します。
update_comment_meta()コメントのメタデータを更新します。
delete_comment_meta()コメントからメタデータを削除します。

ユーザーの主なAPI(WP_Roles)

WP_Rolesは、WordPressのユーザーロールと権限管理を管理するクラスです。

以下に、WP_Rolesの各メソッドについてご説明いたします。

add_role()新しいユーザーロールを追加します。
add_cap()ユーザーロールに新しい権限を追加します。
get_role()特定のユーザーロールを取得します。
remove_role()ユーザーロールを削除します。
remove_cap()ユーザーロールから権限を削除します。

ユーザーの主なAPI(WP_User)

WP_Userは、WordPressのユーザーを表すクラスです。

以下に、WP_Userの各メソッドについてご説明いたします。

__construct()新しいWP_Userオブジェクトを作成します。
add_role()ユーザーに新しいロールを追加します。
set_role()ユーザーのロールを設定します。
remove_role()ユーザーからロールを削除します。
add_cap()ユーザーに新しい権限を追加します。
remove_cap()ユーザーから権限を削除します。
remove_all_caps()ユーザーからすべての権限を削除します。
get_role_caps()ユーザーが持つすべての権限を取得します。
has_cap()ユーザーが特定の権限を持っているかどうかを確認します。

トップメニューにメニューを追加する主なAPI

add_menu_page()管理画面のメニューに新しいページを追加します。通常、トップレベルのメニューアイテムを追加します。
add_utility_page()管理画面のメニューに新しいユーティリティページを追加します。通常、設定メニューに追加されます。
add_object_page()管理画面のメニューに新しいオブジェクトページを追加します。通常、その他のページに追加されますが、特定の階層の下に追加される場合もあります。

サブメニューにメニューを追加する主なAPI

add_submenu_page()管理画面のメニューにサブメニューページを追加します。
add_dashboard_page()ダッシュボードページを管理画面のメニューに追加します。
add_posts_page()投稿ページを管理画面のメニューに追加します。
add_pages_page()固定ページページを管理画面のメニューに追加します。
add_media_page()メディアページを管理画面のメニューに追加します。
add_comments_page()コメントページを管理画面のメニューに追加します。
add_theme_page()テーマページを管理画面のメニューに追加します。
add_plugins_page()プラグインページを管理画面のメニューに追加します。
add_users_page()ユーザーページを管理画面のメニューに追加します。
add_management_page()管理ページを管理画面のメニューに追加します。
add_options_page()オプションページを管理画面のメニューに追加します。
remove_menu_page()管理画面のメニューから特定のページを削除するための関数です。
remove_submenu_page()管理画面のメニューからサブメニューページを削除します。

Settings API

register_setting()設定項目を登録して、データの検証と保存を処理します。
unregister_setting()登録された設定項目を解除します。
settings_fields()設定項目のフォームフィールドを出力します。
settings_errors()設定ページでのエラーメッセージを出力します。
do_settings_sections()設定ページで登録されたセクションの表示を出力します。
do_settings_fields()設定ページで登録されたフィールドの表示を出力します。
add_settings_section()設定ページにセクションを追加します。
add_settings_field()設定ページにフィールドを追加します。
add_settings_error()設定ページでエラーメッセージを追加します。

バリデーションの関数

is_email()渡された文字列が有効なメールアドレスかどうかを確認します。
term_exists()指定されたタームが存在するかどうかを確認します。
username_exsis()指定されたユーザー名が存在するかどうかを確認します。
validate_file()渡されたファイルパスが有効かどうかを検証します。

サニタイズの関数

sanitize_email()メールアドレスをクリーンアップして無害な形式に変換します。
sanitize_file_name()ファイル名を安全な形式に変換します。
sanitize_html_class()HTMLクラス名をクリーンアップして無害な形式に変換します。
sanitize_key()キーをクリーンアップして無害な形式に変換します。
sanitize_mime_type()MIMEタイプをクリーンアップして無害な形式に変換します。
sanitize_sql_orderby()SQLのORDER BY句をクリーンアップして無害な形式に変換します。
sanitize_text_field()テキストフィールドをクリーンアップして無害な形式に変換します。
sanitize_title()タイトルをクリーンアップして無害な形式に変換します。
sanitize_user()ユーザー名をクリーンアップして無害な形式に変換します。
esc_url_raw()生のURLをエスケープして無害な形式に変換します。
wp_filter_post_kses()投稿内容をクリーンアップして無害な形式に変換します。
wp_filter_nohtml_kses()HTMLタグを取り除いて無害な形式に変換します。

オプションAPI

add_option()新しいオプションを追加します。
get_option()オプションの値を取得します。
update_option()オプションの値を更新します。
delete_option()オプションを削除します。

JavaScript管理の主なAPI

wp_register_script()スクリプトをWordPressに登録します。登録後は、wp_enqueue_script()で読み込むことができます。
wp_deregister_script()登録されたスクリプトを削除します。
wp_enqueue_script()登録されたスクリプトをページに読み込みます。
wp_dequeue_script()ページからスクリプトの読み込みを解除します。
wp_script_is()特定のスクリプトが登録されているかどうかを確認します。
wp_localize_script()スクリプトに変数をローカライズして追加します。これにより、JavaScript内でPHP変数にアクセスできます。

CSS管理の主なAPI

wp_register_style()スタイルシートをWordPressに登録します。登録後は、wp_enqueue_style()で読み込むことができます。
wp_deregister_style()登録されたスタイルシートを削除します。
wp_enqueue_style()登録されたスタイルシートをページに読み込みます。
wp_dequeue_style()ページからスタイルシートの読み込みを解除します。
wp_style_is()特定のスタイルシートが登録されているかどうかを確認します。
wp_style_add_data()スタイルシートにデータを追加します。
— conditionalスタイルシートの条件付き読み込みを設定します。
— altスタイルシートの代替バージョンのURLを指定します。
— titleスタイルシートのタイトル属性を設定します。
wp_add_inline_style()スタイルシートにインラインスタイルを追加します。

Object Cache API

wp_cache_set()オブジェクトをキャッシュに設定します。
wp_cache_add()キャッシュにオブジェクトを追加しますが、既にキーが存在する場合は追加しません。
wp_cache_replace()既存のキーのオブジェクトを新しいもので置き換えます。
wp_cache_get()キャッシュからオブジェクトを取得します。
wp_cache_delete()キャッシュからオブジェクトを削除します。
wp_cache_flush()キャッシュをフラッシュしてすべてのキャッシュを削除します。

Transients API

set_transient()一時的なデータをセットします。
get_transient()一時的なデータを取得します。
delete_transient()一時的なデータを削除します。
set_site_transient()サイト全体で共有される一時的なデータをセットします。(マルチサイト用)
get_site_transient()サイト全体で共有される一時的なデータを取得します。(マルチサイト用)
delete_site_transient()サイト全体で共有される一時的なデータを削除します。(マルチサイト用)

マルチサイト特有の関数

switch_to_blog()指定されたブログにスイッチし、そのブログのコンテキストを現在のものとして設定します。(マルチサイト用)
restore_current_blog()現在のブログに戻ります。(マルチサイト用)
get_blog_details()ブログの詳細を取得します。(マルチサイト用)
get_blog_status()ブログの状態を取得します。(マルチサイト用)
get_blogaddress_by_id()ブログIDに基づいてブログのURLを取得します。(マルチサイト用)
get_blogaddress_by_name()ブログ名に基づいてブログのURLを取得します。(マルチサイト用)

国際化するための関数

__()テキストを翻訳しますが、出力は行いません。
_e()テキストを翻訳し、出力します。
_n()複数形に対応するテキストを翻訳します。
_x()テキストとコンテキストを指定して翻訳します。
_ex()テキストとコンテキストを指定して翻訳し、出力します。
_nx()複数形に対応するテキストとコンテキストを指定して翻訳します。
esc_attr__()HTML属性値をエスケープして翻訳します。
esc_attr_e()HTML属性値をエスケープして翻訳し、出力します。
esc_attr_x()HTML属性値とコンテキストを指定してエスケープして翻訳します。
esc_html__()HTMLコンテンツをエスケープして翻訳します。
esc_html_e()HTMLコンテンツをエスケープして翻訳し、出力します。
esc_html_x()HTMLコンテンツとコンテキストを指定してエスケープして翻訳します。
_n_noop()複数形に対応するテキストを翻訳しますが、実際の翻訳は遅延させます。
_nx_noop()複数形に対応するテキストとコンテキストを指定して翻訳しますが、実際の翻訳は遅延させます。

テーマのPHPテンプレートファイル以外のPHPファイルでテンプレートタグを使用可能にする方法

WordPressをインストールしたトップディレクトリ以降のサーバー階層の中に、任意でPHPファイルを作成し、ファイルの先頭付近に以下のコードをコピー&ペーストしてください。

<?php require_once($_SERVER['DOCUMENT_ROOT']."/【サイトディレクトリ】/wp-load.php");?>

上記のコードをコピー&ペーストしていただき保存していただくことで、ペーストした上記コードの下からはWordPressのテンプレートタグが使えるようになり、WordPressループなどWordPress独自の実装をおこなうことができます。

これはいざというときに便利なので、ぜひ覚えておきましょう。

まとめ

WordPressテーマ開発に使うテンプレートタグ全集についての解説は以上になります。

テンプレートタグとはWordPressで用意された専用の関数のことをいい、テンプレートタグはテーマ開発はもちろん、プラグイン開発などにも必ず使用する必須の知識になります。

テンプレートタグの数は非常に膨大で全てを覚えることはとても現実的ではありません。

また、初心者エンジニアの方からしたら一体何のテンプレートタグを覚えなければならないのか、また、上級者エンジニアの方からしたら仕事で使えるチートシートのようなものが欲しい、という疑問やご要望があるかと思います。

当記事ではそんな問題を解説するため、テンプレートタグについて現役エンジニアがこれまでの仕事の経験から厳選したテンプレートタグをご紹介いたしました。

よろしければぜひ当記事をご活用いただけましたら幸いです。

執筆者

ワードプレスマガジン編集部 高澤 翔汰

歴4年目(2024年8月以降から5年目です)のエンジニアです!
CMSでのサイト構築とWebデザイン制作を兼任して4年目になります。
自作のiOSアプリ(iPhoneアプリ)やWordPressプラグインを開発することもあり、まだまだ現在進行形で勉強中です!