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