WordPressテンプレートタグをテーマ・プラグイン開発で使える内容で徹底解説(チートシート)
みなさんこんにちは!エンジニアの高澤です!
今回はWordPressテーマ開発に使うテンプレートタグ全集について解説していきたいと思います。
テンプレートタグとはWordPressで用意された専用の関数のことをいいますが、このテンプレートタグはテーマ開発はもちろん、プラグイン開発などにも必ず使用する必須の知識になります。
必須なだけに、初心者エンジニアの方にとっては「テンプレートタグはたくさんありすぎて学習したいけど一体どのテンプレートタグがテーマ開発で必要なのか?」
また上級者エンジニアの方にとっては「テンプレートタグがたくさんありすぎて忘れてるから仕事ですぐに使えるチートシートが欲しい!」
といった問題やご要望があるかと思います。
今回の記事はそこを解決する構成で現役エンジニアのわたくし高澤が力を入れて執筆いたしました。
よろしければぜひ当記事をお仕事などにお役立ていただけましたら幸いです。
目次
- 1 テンプレートタグとは
- 2 テンプレートタグを知っておくメリット
- 3 テンプレートタグが定義されたコアファイル
- 4 WordPressの公式ドキュメント
- 5 テーマ開発でよく使うテンプレートタグのまとめ
- 6 WordPress構築で知っておくべきテンプレートタグ
- 6.1 インクルード系
- 6.2 コンテンツ系
- 6.3 タグ出力系
- 6.4 条件分岐タグ系
- 6.5 投稿タイプの主なAPI
- 6.6 カスタムフィールドの主なAPI
- 6.7 タクソノミーの主なAPI
- 6.8 コメントの主なAPI
- 6.9 コメントのカスタムフィールドAPI
- 6.10 ユーザーの主なAPI
- 6.11 ユーザーの主なAPI(WP_Roles)
- 6.12 ユーザーの主なAPI(WP_User)
- 6.13 トップメニューにメニューを追加する主なAPI
- 6.14 サブメニューにメニューを追加する主なAPI
- 6.15 Settings API
- 6.16 バリデーションの関数
- 6.17 サニタイズの関数
- 6.18 オプションAPI
- 6.19 JavaScript管理の主なAPI
- 6.20 CSS管理の主なAPI
- 6.21 Object Cache API
- 6.22 Transients API
- 6.23 マルチサイト特有の関数
- 6.24 国際化するための関数
- 6.25 テーマのバージョン管理に使用される関数
- 6.26 プラグインのバージョン管理に使用される関数
- 6.27 ブロック開発の主なAPI
- 6.28 ブロックパターンの主なAPI
- 6.29 ブロックスタイルの主なAPI
- 6.30 メニューの主なAPI
- 6.31 ウィジェットの主なAPI
- 6.32 テーマカスタマイザーの主なAPI
- 6.33 ショートコードの主なAPI
- 6.34 フックの主なAPI
- 6.35 メール関連の主なAPI
- 6.36 カスタマイズを便利にする主なAPI
- 6.37 タイムゾーン周りの便利なAPI
- 6.38 なにかと便利なAPI
- 7 テーマのPHPテンプレートファイル以外のPHPファイルでテンプレートタグを使用可能にする方法
- 8 まとめ
テンプレートタグとは
テンプレートタグとは、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は公式ドキュメントで全てのテンプレートタグを公開しています。
ここではまず事前に、当記事で解説するテンプレートタグのWordPress公式ドキュメントをご紹介させていただき、お仕事で当記事を利用する際に公式ドキュメントの閲覧と交えながらツールとしてご利用いただければと思います。
以下のURLをクリックしてご確認いただけます。
https://developer.wordpress.org/reference/functions
つまりはこちらのドキュメントに全てのテンプレートタグが掲載されているのですが、全てを根こそぎ見て覚えることは無謀というか、本当に全て覚える意味があるのか?というと筆者的には意味はないのかなと思っております。
理由は、今や当記事のように仕事で使うテンプレートタグをまとめた情報だったり、ChatGPTなどのAIツールで自動生成することができてしまうので、わざわざ全て覚える必要はないかと考えます。
覚える必要があるのは、実際に実装の中で出てきたテンプレートタグや必要そうだなと予想されるものを事前に覚えるなど、本当に意味のあるフローで覚えていくことが重要なのではないかと考えます。
テーマ開発でよく使うテンプレートタグのまとめ
まず初めに、テーマ開発でよく使う必須のテンプレートタグをおまとめさせていただきます。
記事一覧表示およびページネーションに使用されるテンプレートタグ
以下は記事一覧の表示や、記事一覧に欠かせないページネーションの関連のテンプレートタグになります。
ここから多くのテンプレートタグを解説することになりますが、ここでざっくりとテンプレートタグとは具体的にどんなものなのかの感覚を掴めるようにしておきましょう。
have_posts() | 現在のクエリに投稿が存在するかを確認するループ用のテンプレートタグ。 |
the_post() | ループ内で次の投稿データをセットするテンプレートタグ。 |
the_title() | 現在の投稿のタイトルを表示します。 |
the_permalink() | 現在の投稿のパーマリンク(URL)を表示します。 |
the_excerpt() | 現在の投稿の抜粋を表示します。 |
the_content() | 現在の投稿の内容(本文)を表示します。 |
the_post_thumbnail() | 現在の投稿のサムネイル画像を表示します。 |
the_category() | 現在の投稿が属するカテゴリーを表示します。 |
the_tags() | 現在の投稿に付けられたタグを表示します。 |
the_time() | 投稿の公開日時を表示します。 |
get_posts() | 特定のクエリ条件に従って投稿のリストを取得します。 |
wp_reset_postdata() | カスタムクエリやカスタムループを使った後に、元のクエリに戻すために使用します。 |
WP_Query (※関数ではありません) | 柔軟な投稿の取得・フィルタリングを行うクラス。 |
paginate_links() | ページネーションリンクを生成するテンプレートタグ。WP_Query で使用したクエリの結果に基づいてページネーションを表示します。引数で設定をカスタマイズ可能です。 |
the_posts_pagination() | ページネーションリンクを表示するための簡易的なテンプレートタグ。paginate_links() よりもカスタマイズが少ないですが、シンプルに実装できます。 |
previous_posts_link() | 「前のページへ」リンクを表示します。 |
next_posts_link() | 「次のページへ」リンクを表示します。 |
get_previous_posts_link() | 「前のページへ」リンクを取得します。 |
get_next_posts_link() | 「次のページへ」リンクを取得します。 |
posts_nav_link() | 現在のページ数に基づいて前後のナビゲーションリンクを表示します。カスタマイズの幅が狭いため、現在はほとんど使用されませんが、簡単に実装する場合に使えます。 |
上記テンプレートタグを使って、以下のようなPHPのwhile文によるループ処理と組み合わせて記事一覧と、一覧と連携して出力されるページネーションのPHPのサンプルコードになります。
<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array(
'post_type' => 'post',
'posts_per_page' => 5,
'paged' => $paged,
);
$my_query = new WP_Query($args);
if ($my_query->have_posts()) {
while ($my_query->have_posts()) {
$my_query->the_post();
// 投稿の表示 (タイトル、サムネイルなど)
the_title('<h2><a href="' . get_permalink() . '">', '</a></h2>');
the_excerpt();
}
// ページネーションを表示
the_posts_pagination(array(
'mid_size' => 2,
'prev_text' => __('« Previous'),
'next_text' => __('Next »'),
));
} else {
echo '投稿が見つかりませんでした。';
}
wp_reset_postdata();
?>
上記コードでは、5件ずつの投稿を表示し、ページネーションを適用しています。the_posts_pagination()
を使って、前後のページリンクをカスタマイズしています。
いかがでしょうか?テンプレートタグといってもWordPress側で事前に用意されたただの関数なので、決して難しくないと思います。
実際のテーマ開発やプラグイン開発ではこのようにテンプレートタグを使うことが必須となりますが、例えば当記事のようなたくさんテンプレートタグがまとまっているページなどを使って好きなだけカンニングしていたいて大丈夫です。
WordPress構築で知っておくべきテンプレートタグ
それでは早速、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() | テンプレートファイルを探します。 |
plugins_url() | プラグインディレクトリのURLを取得します。 |
plugin_dir_path() | 指定したプラグインファイルのディレクトリパスを返します。これにより、プラグイン内の他のファイル(例: テンプレートファイルや画像ファイル)にアクセスする際に使用できます。 |
plugin_dir_url() | 指定したプラグインファイルのURLを返します。この関数は、プラグインのリソース(CSSファイルやJavaScriptファイルなど)をURL形式で取得するのに役立ちます。 |
コンテンツ系
コンテンツ系の関数は、WordPressの投稿やページのコンテンツを取得して表示するための重要なツールです。
例えば、the_content()
は本文を表示し、投稿の内容をテーマに組み込む役割を果たします。また、the_excerpt()
は投稿の抜粋を表示し、記事の概要を提供するために使用されます。
これらの関数を使用することで、コンテンツの表示を柔軟にカスタマイズし、デザインやレイアウトに応じた情報提供が可能になります。結果として、サイトのユーザー体験を向上させるために不可欠な要素となります。
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() | ページ分割を表示します。 |
タグ出力系
タグ出力系の関数は、WordPressの投稿やページに関連するタクソノミー情報を表示するための重要なツールです。
例えば、the_terms()
は投稿に関連付けられたタームを取得し、カスタムタクソノミーやカテゴリを表示する役割を果たします。また、the_category_list()
は、投稿が属するカテゴリをリスト形式で表示し、サイト内のナビゲーションを助けます。
これらの関数を使用することで、コンテンツの関連性を明確にし、訪問者が興味のある情報に簡単にアクセスできるようにすることができます。結果として、サイトのユーザビリティやSEO効果を向上させるために重要な要素となります。
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_single()
は現在表示されているページが単一の投稿であるかどうかを判定し、特定の投稿専用のレイアウトやスタイルを適用するために使用されます。また、is_category()
は現在のアーカイブがカテゴリアーカイブであるかを確認し、カテゴリに特化したコンテンツや表示を行う役割を果たします。
これらの関数を活用することで、サイトの表示内容を動的に変更し、訪問者のニーズに応じたカスタマイズが可能になります。結果として、ユーザー体験を向上させるために不可欠な要素となります。
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() | トラックバックが表示されているかどうかをチェックします。 |
is_privacy_policy() | プライバシーポリシーページかどうかを判定します。GDPR対応などでプライバシーポリシーページを使う際に便利です。 |
is_customize_preview() | 現在のページがカスタマイザーのプレビュー画面かどうかをチェックします。テーマのカスタマイズをしている場合に、その状況に応じた処理を行いたい時に便利です。 |
has_excerpt() | 投稿に抜粋が存在するかどうかをチェックします。特定の条件下で抜粋を表示したり、抜粋がない場合に別のテキストを表示したりするのに便利です。 |
in_the_loop() | 現在のコードがWordPressのループ内で実行されているかどうかを判定します。テンプレートの特定の場所でループの中にいるかをチェックする際に有用です。 |
is_sticky() | 投稿が「注目の投稿」として固定されているかどうかを判定します。特定の投稿を注目させるために使用します。 |
is_multisite() | 現在のWordPressインストールがマルチサイトかどうかを判定します。マルチサイトを管理する際に役立ちます。 |
is_main_site() | マルチサイト環境で、現在のサイトがメインサイトかどうかを確認します。特定の処理をメインサイトのみに適用したい場合に使用できます。 |
is_network_admin() | マルチサイトのネットワーク管理画面であるかを確認します。マルチサイト環境において、ネットワーク管理者の操作時に使用します。 |
wp_is_mobile() | ユーザーがモバイルデバイスからアクセスしているかどうかを判定します。モバイル向けの表示や機能を制御する際に使用します。 |
is_page_template() | 特定のページテンプレートが使用されているかどうかを判定します。カスタムページテンプレートで異なるレイアウトやデザインを適用したい場合に役立ちます。 |
is_user_logged_in() | 現在のユーザーがログインしているかどうかを判定します。ログイン状態に応じたコンテンツの表示や非表示を制御する際に使います。 |
is_blog_admin() | 現在のページがWordPress管理画面のブログに関連する部分かどうかを判定します。管理画面のカスタマイズに役立つ関数です。 |
is_admin() | 現在のリクエストが管理画面(ダッシュボード)内であるかどうかを確認します。管理画面全体に適用されます。 |
current_user_can() | 現在ログインしているユーザーが特定の権限を持っているかを判定します。例えば、投稿の公開権限があるかどうかなどを確認できます。 |
wp_get_current_user() | 現在のユーザー情報を取得します。この情報をもとに、特定のユーザーに関連する処理を行うことができます。 |
is_user_admin() | 現在のリクエストがユーザー管理画面(古いマルチサイト用)かどうかを確認します。マルチサイトで使用されることが多いです。 |
get_current_screen() | 管理画面のどの画面が現在表示されているかを取得します。特定のページで特別な処理を行いたい場合に使用します。 |
wp_doing_ajax() | 現在のリクエストがAJAXによるものかどうかを確認します。管理画面の非同期処理で使用されることが多いです。 |
wp_doing_cron() | 現在のリクエストがCronジョブによるものかどうかを確認します。管理画面の自動タスク処理に関係します。 |
is_admin_bar_showing() | 管理バーが表示されているかどうかを確認します。これにより、フロントエンドまたは管理画面での特定の処理を切り替えることができます。 |
wp_get_active_and_valid_plugins() | 有効なプラグインのリストを取得します。特定のプラグインが有効になっているかを確認する際に使います。 |
current_user_can_for_blog() | 特定のブログでユーザーが指定した権限を持っているかどうかを判定します。マルチサイトの環境で特定のブログに対する権限を確認するのに便利です。 |
get_admin_page_title() | 管理ページのタイトルを取得します。特定の管理ページで異なる処理を行いたい場合に利用できます。 |
is_wp_error() | WordPressでエラーオブジェクトを確認するための関数です。この関数は、指定した変数がWP_Errorオブジェクトである場合にtrue を返し、それ以外の場合にはfalse を返します。主にAPIリクエストやデータベース操作などで、エラーが発生したかどうかを確認する際に使用されます。 |
投稿タイプの主なAPI
投稿タイプのAPIは、WordPressでカスタム投稿タイプを管理し、サイトのコンテンツ構造を柔軟に拡張するための重要なツールです。
例えば、register_post_type()
は、新しい投稿タイプを定義し、管理画面に表示させる役割を果たします。これにより、ブログ記事だけでなく、ページや商品、ポートフォリオなど、さまざまなコンテンツを扱うことが可能になります。
また、get_post_type()
は、現在の投稿のタイプを取得し、特定の投稿タイプに応じた処理や表示を行うために使用されます。
これらの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
カスタムフィールドのAPIは、WordPressの投稿やページに追加のデータを付加し、コンテンツを柔軟に拡張するための重要なツールです。
例えば、add_post_meta()
は、新しいカスタムフィールドを投稿に追加し、特定の情報を保存する役割を果たします。
また、get_post_meta()
は、投稿のカスタムフィールドからデータを取得し、テーマやプラグイン内で使用するために利用されます。また、update_post_meta()
は既存のカスタムフィールドの値を更新し、データの管理を容易にします。
これらの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
タクソノミーのAPIは、WordPressでコンテンツを分類し、管理するための重要なツールです。
例えば、register_taxonomy()
は、新しいタクソノミーを定義し、投稿やカスタム投稿タイプに関連付ける役割を果たします。これにより、コンテンツをカテゴリーやタグだけでなく、柔軟に分類できます。get_the_terms()
は、特定の投稿に関連付けられたタクソノミーのタームを取得し、表示するために使用されます。
また、has_term()
は、特定のタクソノミーのタームが投稿に関連付けられているかを確認するために利用されます。
これらの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() | タームのチェックボックスリストを表示します。 |
has_term() | 特定のタクソノミーのタームが投稿に関連付けられているかを確認します。 |
コメントの主なAPI
コメントのAPIは、WordPressでコメント機能を管理し、サイトに対するユーザーの意見やフィードバックを収集するための重要なツールです。
例えば、wp_insert_comment()
は、新しいコメントをデータベースに追加する役割を果たし、投稿へのユーザーの意見を記録します。get_comments()
は、特定の投稿に関連するコメントを取得し、表示するために使用されます。
また、comments_open()
は、投稿に対してコメント機能が有効かどうかを判定するために利用されます。
これらの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() | コメントのキャッシュを更新します。 |
comments_open() | 投稿に対してコメント機能が有効かどうかを判定します。 |
コメントのカスタムフィールドAPI
コメントのカスタムフィールドAPIは、WordPressのコメントに追加のデータを保存し、柔軟な情報管理を可能にする重要なツールです。
例えば、add_comment_meta()
は、新しいカスタムフィールドをコメントに追加する役割を果たし、特定の情報を保存します。get_comment_meta()
は、コメントのカスタムフィールドからデータを取得し、テーマやプラグインで利用するために使用されます。
また、update_comment_meta()
は既存のカスタムフィールドの値を更新し、データの管理を容易にします。
これらのAPIを活用することで、コメントに関連する情報を拡張し、サイトの機能性を向上させることが可能になります。
add_comment_meta() | コメントにメタデータを追加します。 |
get_comment_meta() | コメントのメタデータを取得します。 |
update_comment_meta() | コメントのメタデータを更新します。 |
delete_comment_meta() | コメントからメタデータを削除します。 |
ユーザーの主なAPI
WordPressのユーザーAPIは、サイト上の著者やユーザーに関する情報を取得・表示するための一連の関数です。これらの関数を使用することで、投稿の著者名や著者に関連するリンク、著者の投稿数などの情報を簡単に表示できます。
例えば、get_the_author()
やthe_author()
は、投稿の著者名を取得・表示し、get_author_posts_url()
やthe_author_posts_link()
は、著者の投稿アーカイブページへのリンクを生成します。the_author_meta()
は、著者のメールアドレスやURLなどのメタ情報を表示し、wp_dropdown_users()
はユーザーのドロップダウンリストを作成します。
これらのAPIは、ブログやニュースサイトで著者情報を表示したり、ユーザーリストを管理したりする際に非常に便利です。WordPressのユーザーAPIを利用することで、ユーザー情報の表示やリンク作成を簡単かつ効果的に行うことができます。
get_the_author() | 現在の投稿の著者の名前を取得します。 |
get_the_author_link() | 著者アーカイブページへのリンクを含むHTMLを取得します。 |
get_author_posts_url() | 特定の著者の投稿アーカイブページのURLを取得します。 |
the_author_meta() | 特定の著者メタデータ(例:email, url, description)を表示します。 |
wp_dropdown_users() | HTMLのドロップダウンリストにユーザーを表示します。 |
the_author_link() | 現在の投稿の著者リンクを表示します。 |
the_author() | 現在の投稿の著者の名前を表示します。 |
the_author_posts() | 現在の投稿の著者が公開した投稿数を表示します。 |
the_author_posts_link() | 現在の投稿の著者の投稿アーカイブページへのリンクを表示します。 |
wp_list_authors() | すべての著者のリストを表示します。 |
get_user_meta() | 特定のユーザーに関連するメタデータを取得できます。これにより、ユーザーごとのカスタマイズを行うことが可能です。 |
user_can() | 指定したユーザーが特定のアクションを実行できるかどうかを判定します。これを利用して、管理画面の特定の機能やメニューを表示/非表示にすることが可能です。 |
ユーザーの主なAPI(WP_Roles)
WP_Rolesは、WordPressのユーザーロールと権限管理を管理するクラスです。
このクラスは、サイト上のユーザーに対する役割(ロール)と、それに伴う権限(ケイパビリティ)を管理するための機能を提供します。
WP_Roles
は、WordPressサイト上で利用可能なすべての役割を定義し、管理します。各役割には一連の権限が関連付けられています。
また、権限の管理が可能であり、各役割にどのような権限があるかを管理します。権限とは、ユーザーがサイト上で実行できる特定の操作(例えば、投稿の公開、ページの編集、プラグインのインストールなど)を指します。
役割と権限の追加・削除としての機能があり、WP_Roles
クラスを使用して、新しい役割を追加したり、既存の役割を削除したりすることができます。また、特定の役割に対する権限を追加したり削除したりすることも可能です。
以下に、WP_Rolesの各メソッドについてご説明いたします。
add_role() | 新しいユーザーロールを追加します。 |
add_cap() | ユーザーロールに新しい権限を追加します。 |
get_role() | 特定のユーザーロールを取得します。 |
remove_role() | ユーザーロールを削除します。 |
remove_cap() | ユーザーロールから権限を削除します。 |
WordPressにはデフォルトでいくつかの役割が定義されています。
- 管理者 (Administrator):すべての権限を持つ。
- 編集者 (Editor):すべてのコンテンツを管理できる。
- 著者 (Author):自分の投稿を公開できる。
- 寄稿者 (Contributor):自分の投稿を下書きとして保存できるが、公開はできない。
- 購読者 (Subscriber):コンテンツを読むことができる。
上記WordPressデフォルトの権限(役割)やテンプレートタグをご参考に、ユーザー機能をカスタマイズしてください。
例えば、「新しいユーザーロールを追加する」場合は、以下のコードを記述します。
<?php
// 新しいユーザーロールを追加
add_role('custom_role', 'カスタムロール', array(
'read' => true,
'edit_posts' => true,
));
また、「ユーザーロールに新しい権限を追加する」場合は、以下のコードを記述します。
<?php
// カスタムロールに新しい権限を追加
$role = get_role('custom_role');
$role->add_cap('publish_posts');
ユーザーの主なAPI(WP_User)
WP_User
は、WordPressのユーザーに関する情報や操作を管理するためのクラスです。
このクラスは、WordPressサイトのユーザーをプログラム的に扱う際に利用されます。WP_User
クラスを使うことで、ユーザーの情報取得や更新、ユーザーの権限管理などが容易に行えます。
以下に、WP_Userの各メソッドについてご説明いたします。
__construct() | 新しいWP_Userオブジェクトを作成します。 |
add_role() | ユーザーに新しいロールを追加します。 |
set_role() | ユーザーのロールを設定します。 |
remove_role() | ユーザーからロールを削除します。 |
add_cap() | ユーザーに新しい権限を追加します。 |
remove_cap() | ユーザーから権限を削除します。 |
remove_all_caps() | ユーザーからすべての権限を削除します。 |
get_role_caps() | ユーザーが持つすべての権限を取得します。 |
has_cap() | ユーザーが特定の権限を持っているかどうかを確認します。 |
例えば、「ユーザーに新しいロールを追加、設定、削除する」場合は以下のようにコードを記述します。
<?php
// ユーザーIDを指定
$user_id = 1;
$user = new WP_User($user_id);
// 新しいロールを追加する
$user->add_role('editor');
// ユーザーのロールを設定する(すでに存在するロールに変更する)
$user->set_role('administrator');
// ユーザーから特定のロールを削除する
$user->remove_role('editor');
WP_User
クラスは、WordPressのユーザー情報を操作および管理するための強力なツールです。これを使用することで、プラグインやテーマの開発者は、ユーザーのプロファイルや権限を柔軟に制御することができます。
トップメニューにメニューを追加する主なAPI
add_menu_page()などの管理画面のトップメニューにメニューを追加するAPIは、WordPressの管理画面にカスタムメニューを追加し、プラグインやテーマの設定を管理するための重要なツールです。
例えば、add_menu_page()
は、新しい管理メニューを作成し、特定のページにリンクする役割を果たします。
また、add_submenu_page()
は、親メニューの下にサブメニューを追加し、関連する機能を整理します。
これらのAPIを利用することで、管理画面のユーザーインターフェースを拡張し、ユーザーが簡単に設定や管理を行えるようにすることが可能になります。
add_menu_page() | 管理画面のメニューに新しいページを追加します。通常、トップレベルのメニューアイテムを追加します。 |
add_utility_page() | 管理画面のメニューに新しいユーティリティページを追加します。通常、設定メニューに追加されます。 |
add_object_page() | 管理画面のメニューに新しいオブジェクトページを追加します。通常、その他のページに追加されますが、特定の階層の下に追加される場合もあります。 |
サブメニューにメニューを追加する主なAPI
add_submenu_page()
などのサブメニューにメニューを追加するAPIは、WordPressの管理画面において、親メニューの下に関連機能を整理するための重要なツールです。
例えば、add_submenu_page()
は、指定した親メニューの下に新しいサブメニューを追加し、特定の設定や機能にアクセスできるようにします。
また、remove_submenu_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
Settings APIは、WordPressの管理画面に設定ページ(オプションページ)を追加し、オプションを管理するための重要なツールです。
これにより、プラグインやテーマが簡単に設定オプションを提供でき、ユーザーが直感的に管理できるようになります。
Settings APIを使用すると、設定の登録、表示、検証を効率的に行うことができ、フォームのセキュリティやバリデーションも容易に実装できます。
これにより、一貫したユーザー体験を提供し、WordPressの管理画面をより使いやすくすることが可能になります。
register_setting() | 設定項目を登録して、データの検証と保存を処理します。 |
unregister_setting() | 登録された設定項目を解除します。 |
settings_fields() | 設定項目のフォームフィールドを出力します。 |
settings_errors() | 設定ページでのエラーメッセージを出力します。 |
do_settings_sections() | 設定ページで登録されたセクションの表示を出力します。 |
do_settings_fields() | 設定ページで登録されたフィールドの表示を出力します。 |
add_settings_section() | 設定ページにセクションを追加します。 |
add_settings_field() | 設定ページにフィールドを追加します。 |
add_settings_error() | 設定ページでエラーメッセージを追加します。 |
バリデーションの関数
username_exists()
などのバリデーション関数は、WordPressでユーザーの入力データを検証し、正しい形式や存在を確認するための重要なツールです。
username_exists()
は、指定されたユーザー名が既にデータベースに存在するかどうかをチェックし、重複を防ぐ役割を果たします。
その他のバリデーション関数には、email_exists()
(メールアドレスの存在確認)やvalidate_username()
(ユーザー名の形式確認)などがあり、これらを使用することで、ユーザー登録やプロフィール編集の際にデータの整合性を保つことができます。
バリデーション関数を活用することで、セキュリティとユーザビリティの向上が図れます。
is_email() | 渡された文字列が有効なメールアドレスかどうかを確認します。 |
term_exists() | 指定されたタームが存在するかどうかを確認します。 |
username_exsis() | 指定されたユーザー名が存在するかどうかを確認します。 |
validate_file() | 渡されたファイルパスが有効かどうかを検証します。 |
validate_username() | ユーザー名が有効かどうかを確認します。 |
function_exists() | 指定した関数が既に定義されているかどうかを確認します。 |
サニタイズの関数
sanitize_email()
などのサニタイズ関数は、WordPressでユーザーからの入力データを安全な形式に変換し、データベースや表示に適した状態にするための重要なツールです。
例えば、sanitize_email()
は、メールアドレスを正しい形式に整え、不正なデータが登録されないようにします。
他にも、sanitize_text_field()
(テキストフィールドのデータをクリーンにする)、sanitize_url()
(URLを安全な形式に整える)などがあり、これらの関数を使用することで、サイトのセキュリティを向上させ、潜在的な攻撃やデータの不整合を防ぐことが可能になります。
サニタイズ関数は、ユーザー入力の信頼性を確保するために不可欠です。
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タグを取り除いて無害な形式に変換します。 |
esc_html() | HTMLコンテンツを安全に出力するために使用します。タグが無効化され、表示されるだけになります。 |
esc_url() | URLの出力を安全に行うために使用します。不正なURLの出力を防ぎます。 |
esc_js() | JavaScriptコード内に出力する値を安全にエスケープします。 |
esc_attr() | HTML属性に値を出力する際に使用し、値が安全に出力されることを保証します。 |
esc_textarea() | テキストエリア内に出力するテキストをエスケープします。 |
wp_kses() | 許可されたHTMLタグと属性のみを許可して出力する際に使用します。ホワイトリスト形式で指定可能です。 |
wp_strip_all_tags() | 全てのHTMLタグを取り除いたプレーンテキストを出力するために使用します。JavaScriptやスタイルも除去されます。 |
esc_sql() | SQLクエリを安全に実行するために、データベースクエリ内の値をエスケープします。 |
esc_url_raw() | URLを保存する際に使用されるエスケープ関数です。保存用であり、実際に画面に出力するためのものではありません。保存時に使う場合は、こちらを使用します。 |
sanitize_file_name() | ファイル名に使える安全な文字のみを許可するために使用されます。ファイルアップロード時などに使われます。 |
wp_kses_post() | 投稿やページのコンテンツで許可されたHTMLタグを保持しつつ、不正なタグや属性を削除します。通常、投稿本文の処理に使います。 |
wp_filter_nohtml_kses() | 全てのHTMLタグを削除し、純粋なテキストとして出力します。フィルターフックとして利用されることが多いです。 |
wp_slash() | SQLやフォーム入力データに対してスラッシュを適切にエスケープするために使います。特に、フォーム送信時にデータが変わらないように処理します。 |
オプションAPI
オプションAPIは、WordPressで設定やオプションを保存、取得、管理するための重要なツールです。
例えば、add_option()
は新しいオプションをデータベースに追加し、get_option()
は保存されたオプションの値を取得する役割を果たします。
また、update_option()
は既存のオプションの値を更新し、delete_option()
は不要なオプションを削除するために使用されます。これらのAPIを活用することで、プラグインやテーマの設定を簡単に管理でき、ユーザーがカスタマイズ可能な機能を提供することが可能になります。
オプションAPIは、サイトの動作や機能を柔軟に調整するために不可欠です。
add_option() | 新しいオプションを追加します。 |
get_option() | オプションの値を取得します。 |
update_option() | オプションの値を更新します。 |
delete_option() | オプションを削除します。 |
JavaScript管理の主なAPI
JavaScript管理の主なAPIは、WordPressサイトにスクリプトを効率的に追加、管理、制御するための重要なツールです。
例えば、wp_enqueue_script()
は、必要なJavaScriptファイルを正しい順序でキューに追加し、依存関係を管理します。
また、wp_localize_script()
は、JavaScriptにPHPからデータを渡すために使用され、インタラクティブな機能を実現します。
さらに、wp_add_inline_script()
は、特定のスクリプトにインラインコードを追加する役割を果たします。
これらのAPIを利用することで、サイトのパフォーマンスを向上させつつ、柔軟なJavaScriptの実装が可能になります。
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
CSS管理の主なAPIは、WordPressサイトにスタイルシートを効率的に追加、管理するための重要なツールです。
例えば、wp_enqueue_style()
は、必要なCSSファイルをキューに追加し、依存関係を管理します。また、wp_add_inline_style()
は、特定のスタイルシートにインラインCSSを追加する役割を果たします。これにより、テーマやプラグインのスタイルを柔軟に調整できます。
さらに、wp_register_style()
は、スタイルシートを登録して後で使用するために準備することができます。
これらの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
Object Cache APIは、WordPressでデータベースへのアクセスを効率化するための重要なツールです。
このAPIを使用することで、データをメモリにキャッシュし、再利用することでパフォーマンスを向上させることができます。
主な関数には、wp_cache_set()
(データをキャッシュに保存)、wp_cache_get()
(キャッシュからデータを取得)、wp_cache_delete()
(キャッシュからデータを削除)などがあります。また、wp_cache_flush()
は、すべてのキャッシュをクリアする役割を果たします。
Object Cache APIを活用することで、データベースの負荷を軽減し、サイトの応答速度を改善することが可能になります。
wp_cache_set() | オブジェクトをキャッシュに設定します。 |
wp_cache_add() | キャッシュにオブジェクトを追加しますが、既にキーが存在する場合は追加しません。 |
wp_cache_replace() | 既存のキーのオブジェクトを新しいもので置き換えます。 |
wp_cache_get() | キャッシュからオブジェクトを取得します。 |
wp_cache_delete() | キャッシュからオブジェクトを削除します。 |
wp_cache_flush() | キャッシュをフラッシュしてすべてのキャッシュを削除します。 |
Transients API
Transients APIは、WordPressで一時的なデータを簡単に保存し、管理するための重要なツールです。
このAPIを使用することで、データをデータベースにキャッシュし、指定した期限が過ぎると自動的に削除されるため、パフォーマンスを向上させることができます。
主な関数には、set_transient()
(一時データを保存)、get_transient()
(一時データを取得)、delete_transient()
(一時データを削除)があります。
これにより、特定の処理結果や外部APIからのデータを一時的に保存し、再利用することで、サイトの応答速度を改善することが可能になります。
Transients APIは、キャッシュ機能を簡単に実装できるため、非常に便利です。
set_transient() | 一時的なデータをセットします。 |
get_transient() | 一時的なデータを取得します。 |
delete_transient() | 一時的なデータを削除します。 |
set_site_transient() | サイト全体で共有される一時的なデータをセットします。(マルチサイト用) |
get_site_transient() | サイト全体で共有される一時的なデータを取得します。(マルチサイト用) |
delete_site_transient() | サイト全体で共有される一時的なデータを削除します。(マルチサイト用) |
マルチサイト特有の関数
マルチサイト特有の関数は、WordPressのマルチサイト機能を管理するための重要なツールです。
例えば、switch_to_blog()
は、特定のサイトに切り替えてそのコンテキストで処理を実行する役割を果たします。restore_current_blog()
は、元のサイトに戻るために使用されます。また、get_blog_details()
は、指定したサイトの詳細情報を取得するために利用されます。
さらに、is_multisite()
は、現在のインストールがマルチサイトかどうかを確認するための関数です。
これらの関数を活用することで、マルチサイト環境での管理やカスタマイズを効率的に行うことが可能になります。
switch_to_blog() | 指定されたブログにスイッチし、そのブログのコンテキストを現在のものとして設定します。(マルチサイト用) |
restore_current_blog() | 現在のブログに戻ります。(マルチサイト用) |
get_blog_details() | ブログの詳細を取得します。(マルチサイト用) |
get_blog_status() | ブログの状態を取得します。(マルチサイト用) |
get_blogaddress_by_id() | ブログIDに基づいてブログのURLを取得します。(マルチサイト用) |
get_blogaddress_by_name() | ブログ名に基づいてブログのURLを取得します。(マルチサイト用) |
is_multisite() | マルチサイトかどうか調べます。 |
国際化するための関数
国際化するための関数は、WordPressサイトを多言語対応にするための重要なツールです。
例えば、__()
は、翻訳可能な文字列を定義するために使用され、_e()
は、翻訳された文字列を直接出力します。
また、_n()
は、単数形と複数形を管理するために利用され、文脈に応じた翻訳を提供します。
さらに、load_textdomain()
は、特定の言語ファイルを読み込むために使用されます。
これらの関数を活用することで、サイトを多言語化し、さまざまな地域のユーザーに対応したコンテンツを提供することが可能になります。
__() | テキストを翻訳しますが、出力は行いません。 |
_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() | 複数形に対応するテキストとコンテキストを指定して翻訳しますが、実際の翻訳は遅延させます。 |
load_textdomain() | WordPressでテーマやプラグインの翻訳ファイル(言語ファイル)を読み込むための関数です。多言語対応(国際化)を実現するために使われます。この関数は、指定したテキストドメインに対応する翻訳ファイル(.mo ファイル)を読み込み、翻訳されたテキストを表示するために使用されます。 |
load_theme_textdomain() | テーマの翻訳ファイルを読み込む。 |
load_plugin_textdomain() | プラグインの翻訳ファイルを読み込む。 |
テーマのバージョン管理に使用される関数
テーマのバージョン管理に使用される関数は以下になります。
wp_get_theme() | 現在アクティブなテーマの情報を取得します。この関数を使用することで、テーマの名前やバージョンなどの情報にアクセスできます。 |
wp_get_theme()関数の使用例は以下になります。
<?php
$theme = wp_get_theme();
echo 'テーマ名: ' . $theme->get('Name');
echo 'バージョン: ' . $theme->get('Version');
このコードは、WordPressの現在アクティブなテーマの名前とバージョンを取得し、それぞれの情報を画面に出力しております。
取得できる情報は以下になります。
Name
: テーマの名前Version
: テーマのバージョンAuthor
: テーマの作成者Description
: テーマの説明
上記のようにテーマのバージョン管理には、wp_get_theme()
を使用してテーマ情報を取得し、スタイルやスクリプトにバージョンを指定するのが一般的です。
プラグインのバージョン管理に使用される関数
プラグインのバージョン管理に使用される関数は以下になります。
get_plugin_data() | プラグインの情報を取得するための関数。この関数を使用して、プラグインのバージョンや名前などを取得できます。 |
get_plugin_data()関数の使用例は以下になります。
<?php
$plugin_data = get_plugin_data(WP_PLUGIN_DIR . '/your-plugin/your-plugin.php');
echo 'プラグイン名: ' . $plugin_data['Name'];
echo 'バージョン: ' . $plugin_data['Version'];
このコードでは、WP_PLUGIN_DIR
定数を使用してプラグインのメインファイルへのパスを指定し、get_plugin_data()
関数でプラグインの情報を取得しています。
取得できる情報は以下になります。
Name
: プラグインの名前Version
: プラグインのバージョンPluginURI
: プラグインの公式- URL
Author
: プラグインの作成者 Description
: プラグインの説明
上記のようにプラグインのバージョン管理には、get_plugin_data()
を使用してプラグインのバージョン情報を取得し、必要に応じてスタイルやスクリプトにバージョンを指定します。
これらの関数を活用することで、テーマやプラグインのバージョン管理を効率的に行い、キャッシュ管理やバージョン情報の表示が容易に行えます。
wp_get_theme()やget_plugin_data()が取得する情報の元となる場所は、それぞれテーマ(テーマの場合はstyle.css)とプラグイン(プラグインの場合はプラグイン本体のPHPファイル)のメタデータファイルに定義されています。
wp_get_theme()
の取得元
まずwp_get_theme()
は、テーマの style.cssファイルに記載されているメタデータを取得します。
WordPressのテーマは、style.css
ファイルの冒頭にテーマ情報がコメント形式で記載されています。このコメント部分に記載された情報が、wp_get_theme()
で取得できる内容となります。
例えば、以下のようなテーマファイルのトップ階層にあるstyle.cssがあるとします。
/*
Theme Name: My Custom Theme
Theme URI: https://example.com/my-custom-theme
Author: John Doe
Author URI: https://example.com
Description: This is a custom WordPress theme.
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: my-custom-theme
*/
上記のようなメタデータが style.css
の最初に記述されていることで、WordPressはこの情報を元にテーマのバージョン、名前、作者情報などを取得します。これが wp_get_theme()
関数の取得元です。
get_plugin_data()
の取得元
get_plugin_data()
は、プラグインのメインファイル(通常、プラグイン名.php
ファイル)の冒頭に記載されたメタデータを取得します。
プラグインのメタデータは、プラグインのメインPHPファイル(通常、プラグインフォルダ内のルートにあるPHPファイル)のコメントブロックに記載されています。このコメント部分からプラグインの情報が取得されます。
例えば、「My Custom Plugin」というプラグイン名のプラグイン自体のファイルのトップ階層に、以下の記述があるmy-custom-plugin.phpというプラグインを成り立たせるために必須のPHPファイルがあるとします。
<?php
/**
* Plugin Name: My Custom Plugin
* Plugin URI: https://example.com/my-custom-plugin
* Description: This is a custom WordPress plugin.
* Version: 1.0.0
* Author: John Doe
* Author URI: https://example.com
* License: GPL2
* Text Domain: my-custom-plugin
*/
上記このように、プラグインファイルの冒頭にコメント形式で記載されるメタデータが get_plugin_data()
によって取得されます。
これらが使用できると効率的な開発が可能となるので、ぜひおさえておきましょう。
ブロック開発の主なAPI
ブロック開発のAPIは、WordPressのブロックエディターを活用して、カスタムブロックの作成や編集体験を強化するための重要なツールです。これにより、ユーザーはコンテンツのレイアウトやデザインをより柔軟にカスタマイズできるようになります。
例えば、register_block_type()
関数は、新しいカスタムブロックを登録し、ブロックエディターに表示させるために使用されます。これにより、デフォルトのブロックだけでなく、独自のデザインや機能を持つブロックを作成して、サイトに合わせたコンテンツ編集が可能になります。
また、JavaScriptライブラリのReactで使用するuseBlockProps()
フックは、ブロックが必要とするクラス名や属性を簡単に管理し、ブロックの外観や動作を統一的にコントロールするための便利な手段です。
これらのAPIを効果的に活用することで、WordPressのブロックエディターの可能性を最大限に引き出し、より直感的でパワフルな編集体験を提供することができます。
ブロックとは、コンテンツを構成するための再利用可能な要素で、テキスト、画像、動画などを組み合わせて、ユーザーが視覚的にページや投稿を作成できるようにする機能のことをいいます。
下図のように編集画面左側のメニューにある「ボタン」や「カラム」などの機能がブロックです。
ブロックエディター(Gutenberg)を使用すると、これらのブロックをドラッグ&ドロップで配置したり、カスタマイズしたりできるため、直感的なコンテンツ作成が可能になります 。
※ここの項目ではブロック開発の知識がなければついてこれない部分もあるため、事前に学習しておくことをおすすめいたします。
register_block_type() | 新しいカスタムブロックを登録します。 |
register_block_type_from_metadata() | block.json ファイルを使ってブロックを登録します。block.json にブロックの設定が記述されている場合に便利です。 |
render_block() | 特定のブロックをサーバーサイドでレンダリングするための関数。 |
get_block_categories() | ブロックエディターのブロックカテゴリーを取得する関数。独自のカテゴリーを追加したり、既存のカテゴリーを操作できます。 |
unregister_block_type() | 既存のブロックタイプを登録解除するための関数。テーマやプラグインで不要なブロックを非表示にする際に使用します。 |
has_block() | 特定のブロックが投稿内に存在するかどうかをチェックします。投稿の内容を条件に応じて操作する場合に使用されます。 |
parse_blocks() | 投稿のコンテンツをブロック単位で解析し、各ブロックの情報を配列として返します。 |
do_blocks() | ブロックのコンテンツを処理して、サーバーサイドでブロックをレンダリングする関数。投稿やページのコンテンツがブロック形式の場合、この関数で実際に表示されます。 |
block_has_support() | 特定のブロックが、指定されたサポートオプションを持っているかどうかをチェックする関数。 |
get_block_wrapper_attributes() | サーバーサイドでブロックのラッパーに適用する属性を取得します。カスタムCSSクラスやスタイルを追加する際に便利です。 |
get_block_editor_settings() | ブロックエディターの設定を取得します。エディターの動作や機能をカスタマイズするために使用します。 |
get_block_template() | 投稿タイプやページに関連付けられたブロックテンプレートを取得します。テーマやカスタム投稿タイプでブロックテンプレートを定義して使用する際に役立ちます。 |
block_template_part() | WordPress でブロックテーマやブロックエディターを使用する際に、特定のテンプレートパーツをレンダリングするための関数です。この関数を使用することで、再利用可能なテンプレートパートを簡単に呼び出し、サイトの柔軟性と管理の効率を向上させます。 |
block_editor_rest_api_preload() | ブロックエディターのREST APIリクエストを事前にロードします。ブロックエディターの読み込みを最適化するために使用されます。 |
wp_should_load_block_editor_scripts_and_styles() | ブロックエディターのスクリプトやスタイルがロードされるべきかを判断します。エディターのコンディショナルロードに使います。 |
wp_is_block_theme() | 現在のテーマがブロックテーマ(フルサイト編集をサポートするテーマ)かどうかをチェックします。 |
wp_theme_has_theme_json() | 現在のテーマが theme.json ファイルを使用しているかをチェックします。theme.json はテーマ全体の設定やスタイルを定義するために使用され、主にブロックテーマで使用されますが、ハイブリッドテーマでも存在する場合があります。 |
register_block_bindings_source() | WordPressのブロックエディター(Gutenberg)で、ブロックが特定のデータソースとバインディング(結びつき)を持つことを定義するための関数です。この関数を使用すると、ブロックが他のコンテンツ(例えば、カスタムデータやメタデータ)と連携できるようになります。 |
そして以下は、ブロック開発を実現するedit.jsやsave.jsなどのJavaScriptファイルを構成するReactで使用するAPI(関数)になります(ブロック開発については、別の記事でご確認ください)。
useBlockProps() | ブロック属性やクラス名を自動で生成し、適切に反映するためのフック。 |
useInnerBlocksProps() | ネストされた(内部)ブロックに必要なプロパティやクラスを自動的に適用するためのフックです。これを使用することで、開発者は内部ブロックを簡単に管理し、適切なスタイルや機能を持たせることができます。useInnerBlocksProps() を使うと、親ブロック内に含まれる子ブロック(内部ブロック)を適切に管理できます。これにより、子ブロックが正しく機能し、スタイルが適用されるようになります。 |
useSelect() | グローバルな状態やストレージからデータを取得するために使用します。ブロックのデータにアクセスし、変更を監視するために役立ちます。 |
useDispatch() | データの変更やアクションをディスパッチするために使用します。ブロックの状態を管理し、更新を行うために役立ちます。 |
ブロックパターンの主なAPI
ブロックパターンは、複数のブロックを組み合わせた事前定義されたテンプレートです。これを使うことで、ユーザーはブログやページに素早くデザインを挿入でき、時間を節約できます。
ブロックパターンは、特定のレイアウトやデザインを持つため、サイトの一貫性を保ちながら多様なコンテンツを簡単に作成する手助けをします。たとえば、見出し、テキスト、画像を組み合わせたパターンを登録しておくことで、ユーザーは同じパターンを何度でも利用でき、手間を減らせます。新しいブロックパターンを追加するには、register_block_pattern()
関数を使用し、カスタムのパターンを作成できます。
WordPressでは以下のように多数のブロックパターンを無料公開したディレクトリページがありますが、これら用意されたパターン以外に自作で作るためのAPIがここで紹介するAPIになります。
https://ja.wordpress.org/patterns/
※ここの項目ではブロックパターンの知識がなければついてこれない部分もあるため、事前に学習しておくことをおすすめいたします。
register_block_pattern() | 新しいブロックパターンを登録します。この関数を使うことで、特定のレイアウトやデザインを持つパターンを簡単に追加できます。 |
register_block_pattern_category() | カスタムのブロックパターンカテゴリを登録します。これにより、ブロックパターンを論理的にグループ化できます。 |
unregister_block_pattern() | 登録されたブロックパターンを解除します。この関数を使用することで、不要なパターンを削除できます。 |
unregister_block_pattern_category() | パターンカテゴリーを登録解除するための関数です。 |
WP_Theme::get_block_patterns() | 登録されているすべてのブロックパターンのリストを取得する関数です。 |
ブロックスタイルの主なAPI
ブロックスタイルは、特定のブロックに対して異なる外観を提供する機能です。これにより、同じブロックの中でも異なるスタイルを適用でき、デザインに多様性を持たせることができます。
たとえば、段落ブロックに「太字」スタイルや「枠付き」スタイルを追加することで、視覚的なインパクトを変えることが可能です。ユーザーは、インターフェース上で簡単にスタイルを選択でき、特にデザインに関する知識が少ないユーザーでも直感的に操作できます。新しいスタイルを追加するには、register_block_style()
関数を使用し、既存のブロックに新しい外観を付与できます。
ブロックスタイルは、下図のように編集画面右メニューにある「スタイル」のボタンがブロックスタイル機能です。下図の例でいえば、本文に配置してあるブロックの見た目の設定として「デフォルト」と「角丸」が用意されており、それぞれクリックすると見た目がその通りに設定されます。
※ここの項目ではブロックスタイルの知識がなければついてこれない部分もあるため、事前に学習しておくことをおすすめいたします。
register_block_style() | 特定のブロックに新しいスタイルオプションを登録します。これにより、ブロックの見た目を簡単に変更できます。 |
wp_enqueue_block_style() | WordPressにおいて特定のブロックにカスタムスタイルを追加するための関数です。この関数を使用することで、ユーザーはブロックエディター内でそのブロックに対して適用できるスタイルを定義できます。たとえば、特定の段落ブロックに異なる見た目を提供するために、背景色やフォントスタイルなどのCSSを簡単に適用できるようになります。 |
unregister_block_style() | 登録されたブロックスタイルを解除します。必要がなくなったスタイルを削除するために使用します。 |
メニューの主なAPI
WordPressには標準でメニュー機能が備わっており、ここで解説するテンプレートタグを利用することによって、WordPressのメニュー機能を柔軟にカスタマイズすることができます。
wp_nav_menu() | WordPressでナビゲーションメニューを表示するために使用される関数です。テーマやプラグインで、登録済みのメニューを柔軟に表示することができます。 |
register_nav_menu() | WordPressテーマでカスタムナビゲーションメニューの位置(メニューエリア)を登録するための関数です。この関数を使って、特定のメニューエリア(例えば、ヘッダーやフッター用のメニュー)をテーマに定義し、管理画面でユーザーがそれらの場所にメニューを割り当てられるようにします。 |
register_nav_menus() | テーマに複数のメニュー位置を登録するための関数です。 |
wp_get_nav_menu_items() | 指定したメニューの項目を配列として取得します。これにより、メニューをカスタマイズして出力することが可能です。 |
has_nav_menu() | 指定した場所にメニューが登録されているかどうかを確認するために使用します。 |
wp_page_menu() | メニューが登録されていない場合のフォールバックとして使用されます。この関数は、ページのリストをメニューとして出力します。 |
get_registered_nav_menus() | テーマに登録されているすべてのメニュー位置を取得する関数です。テーマ内でどのメニューが使えるかを一覧表示する際に便利です。 |
get_nav_menu_locations() | 現在のテーマに設定されているメニューの位置と、割り当てられているメニューIDを取得するための関数です。 |
wp_create_nav_menu() | プログラムで新しいメニューを作成するための関数です。テーマ開発やプラグインでカスタムメニューを動的に作成したい場合に使用します。 |
wp_delete_nav_menu() | 既存のメニューを削除するための関数です。メニューをプログラムで削除する必要がある場合に使用します。 |
wp_update_nav_menu_item() | 既存のメニューに新しいメニュー項目を追加または更新するための関数です。 |
ウィジェットの主なAPI
WordPressにはウィジェットに関連するテンプレートタグがいくつか用意されています。以下は、ウィジェットに関連する主要なテンプレートタグの一覧です。
WordPressのウィジェットを扱う際には、特に dynamic_sidebar()
や register_sidebar()
がよく使われます。また、カスタムウィジェットを作成する際は、register_widget()
を使ってクラスベースのウィジェットを登録し、柔軟なウィジェットエリアを構築できます。
dynamic_sidebar() | 指定されたウィジェットエリア(サイドバー)に登録されているウィジェットを表示するテンプレートタグです。 |
is_active_sidebar() | 特定のサイドバーがウィジェットでアクティブかどうかを確認するテンプレートタグです。 |
the_widget() | 特定のウィジェットを任意の場所に直接出力するためのテンプレートタグです。引数としてウィジェットのクラス名やオプションを渡すことができます。 |
register_sidebar() | ウィジェットエリア(サイドバー)をテーマに登録するテンプレートタグです。通常、テーマの functions.php に記述します。 |
unregister_sidebar() | 特定のウィジェットエリアを登録解除するテンプレートタグです。 |
register_widget() | カスタムウィジェットを登録するためのテンプレートタグです。ウィジェットクラスを作成した後、この関数を使ってウィジェットを登録します。 |
unregister_widget() | 既存のウィジェットを登録解除するためのテンプレートタグです。 |
wp_register_sidebar_widget() | 旧式のウィジェット登録用テンプレートタグです。新しいテーマやプラグインではWP_Widget クラスを使用する方が推奨されます。 |
wp_unregister_sidebar_widget() | ウィジェットの登録を解除するための旧式のテンプレートタグです。 |
wp_widget_control() | 旧式のウィジェットコントロールを登録するためのテンプレートタグです。現在ではWP_Widget クラスを使用してウィジェットコントロールを作成することが推奨されています。 |
wp_unregister_widget_control() | ウィジェットコントロールの登録を解除するための旧式のテンプレートタグです。 |
テーマカスタマイザーの主なAPI
以下はテーマカスタマイザーの処理で必要なテンプレートタグになります。
テーマカスタマイザー周りのカスタマイズには、主にカスタマイザーをカスタマイズするためのフックを使って独自のカスタマイザーを登録し、以下のテンプレートタグでデータを取得するなどして表示をカスタマイズすることができます。
get_theme_mod() | テーマカスタマイザーに登録された設定値を取得するためのテンプレートタグです。 |
set_theme_mod() | テーマカスタマイザーに保存された設定値をプログラム的に変更するためのテンプレートタグです。 |
remove_theme_mod() | 特定のテーマ設定を削除するためのテンプレートタグです。 |
has_custom_logo() | テーマカスタマイザーにカスタムロゴが設定されているかをチェックするテンプレートタグです。 |
the_custom_logo() | テーマカスタマイザーで設定されたカスタムロゴを表示するテンプレートタグです。 |
ショートコードの主なAPI
WordPressのショートコード(Shortcode)は、特定の機能を簡単に投稿やページ内に挿入するための便利な方法です。ショートコードに関連するテンプレートタグを使用することで、テーマやプラグインの中でショートコードを登録、実行、操作できます。
add_shortcode() | ショートコードを登録するための関数です。この関数を使ってカスタムショートコードを作成します。 |
do_shortcode() | ショートコードをテンプレートファイルやPHPコード内で直接実行するための関数です。 |
shortcode_atts() | ショートコードに渡された属性(引数)を扱いやすくするための関数です。デフォルトの属性値を定義し、ユーザーが指定した値とマージすることができます。 |
remove_shortcode() | 登録済みのショートコードを削除するための関数です。 |
remove_all_shortcodes() | すべてのショートコードを削除するための関数です。 |
has_shortcode() | 投稿のコンテンツ内に特定のショートコードが含まれているかを確認するための関数です。 |
get_shortcode_regex() | ショートコードを検出するための正規表現を生成する関数です。特定の処理をするためにショートコードを解析したい場合に役立ちます。 |
shortcode_unautop() | ショートコードが自動的に段落タグ <p> で囲まれないようにするための関数です。WordPressは自動的に段落を挿入するため、これが不要な場合に使用します。 |
wpautop() | wpautop() はショートコードとは直接関係ありませんが、ショートコードに関連してよく使用される関数です。WordPressの自動段落挿入を管理します。 |
フックの主なAPI
WordPressのフック機能に関連するテンプレートタグは、テーマやプラグインでカスタマイズや追加の機能を実装するために非常に重要です。フックは大きく分けて2種類あり、アクションフックとフィルターフックがあります。それぞれに関連するテンプレートタグについて説明します。
add_action() | アクションフックに対してコールバック関数を追加するための関数です。 |
do_action() | アクションフックを実行するための関数です。この関数を使って、指定したフックに関連付けられたすべてのコールバック関数を実行します。 |
has_action() | 指定されたアクションフックにコールバック関数が登録されているか確認する関数です。 |
remove_action() | 指定したアクションフックからコールバック関数を削除するための関数です。 |
add_filter() | フィルターフックに対してコールバック関数を追加するための関数です。 |
apply_filters() | フィルターフックを実行するための関数です。この関数を使って、指定したフックに登録されたすべてのフィルターを適用し、値を変更します。 |
has_filter() | 指定されたフィルターフックにコールバック関数が登録されているか確認する関数です。 |
remove_filter() | 指定したフィルターフックからコールバック関数を削除するための関数です。 |
current_filter() | 現在実行中のフィルターフック名を取得するための関数です。 |
doing_action() | 現在実行中のフックがアクションフックであるかどうかを確認する関数です。 |
doing_filter() | 現在実行中のフックがフィルターフックであるかどうかを確認する関数です。 |
メール関連の主なAPI
ここではWordPressでメール送信を行うための主要なAPIや関数について解説します。
標準のメール送信機能であるwp_mail()
を中心に、送信元の設定やメールコンテンツのカスタマイズなど、WordPressで柔軟にメール機能を操作するための方法を解説します。
これにより、通知メールやHTMLメール、カスタムSMTP設定など、実践的なメール処理が簡単に実装可能です。
wp_mail() | WordPressの標準メール送信関数で、HTMLメールにも対応しています。 |
wp_notify_postauthor() | 投稿にコメントが追加されたとき、投稿の作成者に通知を送信します。 |
wp_notify_moderator() | コメントが投稿されたときに、モデレーターに通知を送信します。 |
retrieve_password() | パスワード再設定のリクエストが発生したとき、ユーザーにリセットリンクを含むメールを送信します。 |
wp_new_user_notification() | 新規ユーザー登録時に、管理者やユーザーに通知メールを送信します。 |
カスタマイズを便利にする主なAPI
body_class()
やpost_class()
など、ページや投稿に動的なクラスやIDを自動付与する主要なテンプレートタグを解説します。
これらのタグを活用することで、ページの種類や投稿の状態に応じたスタイリングが容易になり、カスタムテーマのデザインや機能拡張に役立ちます。
body_class() | <body> タグに動的なクラスを追加。 |
post_class() | 投稿やページにクラスを追加。 |
comment_class() | コメントのリストアイテムにクラスを追加。 |
get_post_class() | post_class() のクラスを文字列として取得。 |
get_body_class() | body_class() のクラスを配列で取得。 |
get_comment_class() | comment_class() のクラスを配列で取得。 |
タイムゾーン周りの便利なAPI
WordPressには、日時やタイムゾーンの操作に役立つテンプレートタグがいくつかあります。以下に、代表的なタイムゾーン関連のテンプレートタグとその用途を解説します。
date_i18n() | WordPressサイトのタイムゾーン設定に基づき、ローカライズされた日時をフォーマットして出力します。 |
current_time() | WordPressサイトのタイムゾーンに基づいた現在の日時またはUNIXタイムスタンプを取得します。 |
human_time_diff() | 指定された2つのUNIXタイムスタンプの差を、読みやすい形(例:「5分前」)で返します。 |
get_gmt_from_date() | サイトのタイムゾーンでの日時をGMT(UTC)に変換して返します。 |
get_date_from_gmt() | GMT(UTC)の日時をサイトのタイムゾーン設定に従ってローカル日時に変換します。 |
date_default_timezone_set() | スクリプトのタイムゾーンを設定する関数です。【PHP関数】 |
date_default_timezone_get() | 現在設定されているデフォルトのタイムゾーンを取得する関数です。【PHP関数】 |
timezone_identifiers_list() | 設定可能なすべてのタイムゾーンの識別子(例:Asia/Tokyo )のリストを取得する関数です。【PHP関数】 |
timezone_name_from_abbr() | タイムゾーンの略称(例:JST )からタイムゾーン名(例:Asia/Tokyo )を取得する関数です。【PHP関数】 |
gmdate() | date() 関数と似ていますが、UTC(GMT)タイムゾーンでフォーマットした日時を返します。【PHP関数】 |
strtotime() | 日付文字列をタイムゾーンに基づいたUNIXタイムスタンプに変換する関数です。【PHP関数】 |
date() | PHPの基本的な日時フォーマット関数で、UNIXタイムスタンプを指定して任意の日時フォーマットで表示します。【PHP関数】 |
なにかと便利なAPI
以下は分類がむずかしかったため、便利でかつプラグイン開発やテーマ開発でしばしば使用されるAPIとして解説いたします。
wp_remote_get() | 指定したURLにGETリクエストを送信するために使用されるWordPressの関数です。この関数を利用することで、外部のAPIやサービスからデータを取得できます。レスポンスは、HTTPリクエストに関する情報(ヘッダー、本文、レスポンスコードなど)を含む配列として返されます。WordPressのコーディング基準やセキュリティプラクティスに従いながら、リモートサーバーからデータを取得するのに非常に便利です。 |
テーマのPHPテンプレートファイル以外のPHPファイルでテンプレートタグを使用可能にする方法
WordPressのテーマ開発やプラグイン開発において、テンプレートタグは非常に便利な機能ですが、通常はテーマのPHPテンプレートファイル内でのみ使用できます。
しかし、プラグインやカスタム機能を実装する際には、他のPHPファイルでもテンプレートタグを利用したい場合があります。
ここでは、テーマのPHPテンプレートファイル以外のPHPファイルでテンプレートタグを使用可能にする方法を紹介します。これにより、より柔軟で効果的な開発が実現できます。
まずは、WordPressをインストールしたトップディレクトリ以降のサーバー階層の中に、任意でPHPファイルを作成し、ファイルの先頭付近に以下のコードをコピー&ペーストしてください。
ちなみに任意のPHPファイルとは、header.phpやindex.phpなどのWordPressの仕様に沿ったPHPファイル以外のファイル(自作したsample.phpやtext.phpなど任意のファイル名で作成したただのPHPファイル)のことをいいます。
ご自身で作成された独自のPHPファイルの上の方に以下のコードをコピー&ペーストしてください。
<?php
require_once($_SERVER['DOCUMENT_ROOT']."/【サイトディレクトリ】/wp-load.php");
上記のコードをコピー&ペーストしていただき保存していただくことで、ペーストした上記コードの下からはWordPressのテンプレートタグが使えるようになり、WordPressループなどWordPress独自の実装をおこなうことができます。
これはいざというときに便利なので、ぜひ覚えておきましょう。
まとめ
WordPressテーマ開発に使うテンプレートタグ全集についての解説は以上になります。
テンプレートタグとはWordPressで用意された専用の関数のことをいい、テンプレートタグはテーマ開発はもちろん、プラグイン開発などにも必ず使用する必須の知識になります。
テンプレートタグの数は非常に膨大で全てを覚えることはとても現実的ではありません。
また、初心者エンジニアの方からしたら一体何のテンプレートタグを覚えなければならないのか、また、上級者エンジニアの方からしたら仕事で使えるチートシートのようなものが欲しい、という疑問やご要望があるかと思います。
当記事ではそんな問題を解説するため、テンプレートタグについて現役エンジニアがこれまでの仕事の経験から厳選したテンプレートタグをご紹介いたしました。
よろしければぜひ当記事をご活用いただけましたら幸いです。
お気軽に皆さんのご要望をお聞かせください!
どんなに些細なことでも構いません!よろしければ記事や当サイトへの「こんな記事があったら仕事とかで役に立つな〜」や「こうだったらもっと役に立つのに!」といったようなご要望等をお気軽にお聞かせください!今後のサービス改善にお役立てさせていただきます!
例1)Reactの技術記事を書いてほしい!
例2)WordPressの使い方とかを初心者向けに解説してほしい!...など