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