wp_doing_ajax() の使い方|説明・引数・注意点

説明

wp_doing_ajax() は、現在のリクエストがAjaxかを判定する関数です。

基本構文

wp_doing_ajax(): bool

引数

引数はありません。

戻り値

Ajaxなら true。

使い方(サンプル)

if ( wp_doing_ajax() ) {
	return;
}

注意点

  • is_admin() はAjaxでも true になるため、区別したいときに使います。

実務での使いどころ

  • Ajaxの処理(admin-ajax.php)の中かを、判定するとき。
  • is_admin() が、Ajaxでも true になるため、Ajaxだけを、区別したいとき。

よくあるミスと対処

  • is_admin() で、Ajaxを判定している。管理画面のページと、区別できない。
  • REST APIの判定に、使っている。REST APIは、別の仕組み。

NG例

if ( is_admin() ) {
	// 管理画面のページだけのつもり(Ajaxでも入る)
}

OK例

if ( is_admin() && ! wp_doing_ajax() ) {
	// 管理画面のページだけ
}

使い分け早見表

関数 判定するもの
wp_doing_ajax() Ajax(admin-ajax.php)か
is_admin() 管理画面(Ajaxも含む)か
wp_is_json_request() JSONを期待するリクエストか

関連項目

is_admin()、wp_is_json_request()

公式リファレンス:wp_doing_ajax() | Function | WordPress Developer Resources

コメント

タイトルとURLをコピーしました