wp_doing_ajax()
Проверяет, является ли текущий запрос AJAX запросом WordPress.
Эта функция — обертка для конструкции:
defined( 'DOING_AJAX' ) && DOING_AJAX
1 раз — 0.000007 сек (скорость света) | 50000 раз — 0.01 сек (скорость света) | PHP 7.0.8, WP 4.7
Хуки из функции
Возвращает
true|false. true при AJAX запросе false при обычно запросе.
Использование
if( wp_doing_ajax() ){
// это AJAX запрос
}
Примеры
#1 Сделаем что либо, только если выполняется AJAX запрос
Подключим AJAX хуки только во время AJAX запроса.
if( wp_doing_ajax() ){
add_action( 'wp_ajax_myaction', 'ajax_handler' );
add_action( 'wp_ajax_nopriv_myaction', 'ajax_handler' );
function ajax_handler(){
// текст, который должен вернуть запрос
}
} #2 Разный вывод данных в зависимости от типа запроса - AJAX или другой запрос
В PHP-коде, если мы хотим разделить вывод в зависимости от того, как был сделан запрос (как обычная функция или как обратный вызов WP AJAX), мы можем использовать функцию wp_doing_ajax(), как показано ниже:
function wpdocs_render() {
// SOME LOGIC ...
$return_data = array( 'success' => true );
if ( wp_doing_ajax() ) {
wp_send_json_success( $return_data );
}
else {
return $return_data;
}
}
Список изменений
| С версии 4.7.0 | Введена. |
Код wp_doing_ajax() wp doing ajax WP 7.0
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 );
}