Различные методы проверки, не является ли запрос запросом AJAX в WordPress

В WordPress запросы AJAX обычно используются для обработки динамической загрузки контента и асинхронных операций. Однако бывают случаи, когда вам необходимо различать запросы AJAX и обычные запросы HTTP. В этой статье мы рассмотрим различные методы с примерами кода, чтобы проверить, не является ли запрос запросом AJAX в WordPress.

Метод 1: проверка заголовка HTTP_X_REQUESTED_WITH

if ( ! isset( $_SERVER['HTTP_X_REQUESTED_WITH'] ) || 'xmlhttprequest' !== strtolower( $_SERVER['HTTP_X_REQUESTED_WITH'] ) ) {
    // Not an AJAX request
    // Your code here
}

Метод 2: проверка константы «DOING_AJAX»

if ( ! defined( 'DOING_AJAX' ) || ! DOING_AJAX ) {
    // Not an AJAX request
    // Your code here
}

Метод 3: использование функции wp_doing_ajax()

if ( ! wp_doing_ajax() ) {
    // Not an AJAX request
    // Your code here
}

Метод 4. Использование функции is_admin()

if ( ! is_admin() && ! wp_doing_ajax() ) {
    // Not an AJAX request
    // Your code here
}

Метод 5: проверка действий «wpajax» и «wp_ajaxnopriv»

if ( ! isset( $_REQUEST['action'] ) || ( ! has_action( 'wp_ajax_' . $_REQUEST['action'] ) && ! has_action( 'wp_ajax_nopriv_' . $_REQUEST['action'] ) ) ) {
    // Not an AJAX request
    // Your code here
}

Используя эти методы, вы можете легко определить, является ли запрос запросом AJAX или нет в WordPress. В зависимости от ваших конкретных требований вы можете выбрать наиболее подходящий метод для эффективной обработки запросов, отличных от AJAX. Не забудьте реализовать эти проверки в соответствующих хуках или функциях в зависимости от вашего варианта использования.