wp_doing_ajax()
Перевіряє, чи поточний запит AJAX є запитом WordPress.
Ця функція – обгортка для конструкції:
defined( 'DOING_AJAX' ) && DOING_AJAX
1 раз – 0.000007 сек
(швидкість світла) | 50000 разів – 0.01 сек
(швидкість світла) |
PHP 7.0.8, WP 4.7
(швидкість світла) | 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 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 );
}