wp_doing_ajax()WP 4.7.0

Проверяет, является ли текущий запрос 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 запрос
}

Примеры

0

#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(){
		// текст, который должен вернуть запрос
	}
}
0

#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 6.1.1

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 );
}