説明
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

コメント