wp_doing_ajax()
Determines whether the current request is a WordPress Ajax request.
This function is a wrapper for:
defined( 'DOING_AJAX' ) && DOING_AJAX
1 time — 0.000007 sec (speed of light) | 50000 times — 0.01 sec (speed of light) | PHP 7.0.8, WP 4.7
Hooks from the function
Returns
true|false. True if it's a WordPress Ajax request, false otherwise.
Usage
if( wp_doing_ajax() ){
// this is AJAX request
}
Examples
#1 Differentiate output behavior based on how it is being called
In a PHP code, if we want to differentiate its output behavior based on how it is being called (like a normal function or like a WP AJAX callback), then we should use the wp_doing_ajax() function like below:
function wpdocs_render() {
// SOME LOGIC ...
$return_data = array( 'success' => true );
if ( wp_doing_ajax() ) {
wp_send_json_success( $return_data );
}
else {
return $return_data;
}
} #2 Do something if the current request is an AJAX request
Add AJAX hooks only for AJAX request.
if( wp_doing_ajax() ){
add_action( 'wp_ajax_myaction', 'ajax_handler' );
add_action( 'wp_ajax_nopriv_myaction', 'ajax_handler' );
function ajax_handler(){
// ajax request handler
}
}
Changelog
| Since 4.7.0 | Introduced. |
wp_doing_ajax() wp doing ajax code WP 6.9
function wp_doing_ajax() {
/**
* Filters whether the current request is a WordPress Ajax request.
*
* @since 4.7.0
*
* @param bool $wp_doing_ajax Whether the current request is a WordPress Ajax request.
*/
return apply_filters( 'wp_doing_ajax', defined( 'DOING_AJAX' ) && DOING_AJAX );
}