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.0.2

function wp_doing_ajax() {
	/**
	 * Filters whether the current request є WordPress Ajax request.
	 *
	 * @ Since 4.7.0
	 *
	 * @param bool $wp_doing_ajax Whether the current request є WordPress Ajax request.
	 */
	return apply_filters( 'wp_doing_ajax', defined( 'DOING_AJAX' ) && DOING_AJAX );
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *