Как использовать AJAX в WordPress: практическое руководство с примерами кода

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

Что такое AJAX и зачем он нужен в WordPress

AJAX (Asynchronous JavaScript and XML) — это технология, позволяющая обмениваться данными с сервером асинхронно, без перезагрузки страницы. В WordPress AJAX часто применяется для динамической загрузки контента, отправки форм, фильтрации товаров, обновления виджетов и т.д.

Например, вместо того чтобы обновлять страницу при каждом фильтре товаров в интернет-магазине, AJAX позволит подгрузить результаты мгновенно, улучшая скорость и удобство.

WordPress имеет встроенную поддержку AJAX с помощью специального обработчика admin-ajax.php, который позволяет обрабатывать AJAX-запросы с фронтенда и бэкенда.

Как работает AJAX в WordPress: базовая схема

Процесс работы AJAX в WordPress состоит из нескольких этапов:

  • JavaScript на стороне клиента отправляет AJAX-запрос на сервер с помощью функции jQuery.ajax() или fetch().
  • Запрос приходит на файл admin-ajax.php, который является точкой входа для AJAX в WordPress.
  • WordPress ищет обработчик события, к которому привязан запрос (action).
  • Обработчик выполняет нужный код, например, получает данные из базы или выполняет логику.
  • Обработчик возвращает ответ в формате JSON, HTML или простого текста.
  • JavaScript получает ответ и обновляет страницу динамически.

Создаем собственный AJAX-запрос в WordPress: подробный пример

1. Добавляем JavaScript для отправки AJAX-запроса

В вашем плагине или теме создайте файл wpreset-ajax.js с кодом:

jQuery(document).ready(function($) {
  $('#wpreset-ajax-button').on('click', function() {
    var data = {
      action: 'wpreset_get_random_post'
    };
    $.post(wpreset_ajax_object.ajax_url, data, function(response) {
      $('#wpreset-ajax-result').html(response);
    });
  });
});

Здесь мы слушаем клик по кнопке с ID wpreset-ajax-button и отправляем AJAX-запрос с action wpreset_get_random_post.

2. Подключаем скрипт и передаем переменную ajax_url

В functions.php темы или плагина добавьте:

function wpreset_enqueue_scripts() {
  wp_enqueue_script('wpreset-ajax-js', plugin_dir_url(__FILE__) . 'wpreset-ajax.js', ['jquery'], null, true);
  wp_localize_script('wpreset-ajax-js', 'wpreset_ajax_object', [
    'ajax_url' => admin_url('admin-ajax.php')
  ]);
}
add_action('wp_enqueue_scripts', 'wpreset_enqueue_scripts');

Это загрузит скрипт и создаст объект с URL для AJAX-запросов.

3. Создаем обработчик AJAX-запроса на сервере

В functions.php добавьте PHP-функцию:

function wpreset_ajax_get_random_post() {
  $args = [
    'posts_per_page' => 1,
    'orderby' => 'rand',
    'post_status' => 'publish'
  ];
  $random_post = get_posts($args);
  if (!empty($random_post)) {
    echo '<h3>' . esc_html($random_post[0]->post_title) . '</h3>';
    echo '<p>' . esc_html(wp_trim_words($random_post[0]->post_content, 20)) . '</p>';
  } else {
    echo 'Пост не найден.';
  }
  wp_die();
}
add_action('wp_ajax_wpreset_get_random_post', 'wpreset_ajax_get_random_post');
add_action('wp_ajax_nopriv_wpreset_get_random_post', 'wpreset_ajax_get_random_post');

Обратите внимание, что для авторизованных пользователей используется хук wp_ajax_{action}, а для неавторизованных — wp_ajax_nopriv_{action}.

4. Добавляем HTML-код на страницу

В нужном шаблоне или через шорткод выведите:

<button id="wpreset-ajax-button">Показать случайный пост</button>
<div id="wpreset-ajax-result"></div>

Теперь при клике на кнопку будет загружаться случайный пост без перезагрузки страницы.

Примеры популярных плагинов с использованием AJAX

Многие популярные плагины WordPress активно используют AJAX для улучшения UX. Рассмотрим несколько:

  • WooCommerce – AJAX применяется для фильтрации товаров, обновления корзины, подгрузки товаров при скролле.
  • Contact Form 7 – отправка форм осуществляется через AJAX, что позволяет не перезагружать страницу.
  • WPForms – также использует AJAX для динамического взаимодействия с пользователем.

Если вы хотите добавить AJAX в свой плагин, стоит изучить эти решения и их подходы.

Рекомендации и лучшие практики при работе с AJAX в WordPress

Оптимизируйте количество запросов

Не стоит злоупотреблять AJAX-запросами, так как это может привести к увеличению нагрузки на сервер и ухудшению производительности. Объединяйте запросы, кэшируйте данные на клиенте и сервере.

Используйте nonce для безопасности

Для предотвращения CSRF-атак обязательно добавляйте в AJAX-запросы nonce и проверяйте их в обработчиках. Пример:

$nonce = wp_create_nonce('wpreset_nonce_action');

Передавайте nonce в JavaScript и проверяйте в PHP с помощью wp_verify_nonce().

Обрабатывайте ошибки

Всегда планируйте обработку ошибок как на клиенте, так и на сервере. Возвращайте понятные сообщения об ошибках и корректно реагируйте на них.

Заключение: AJAX как инструмент для улучшения WordPress-сайтов

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

Как использовать WPReset для автоматического восстановления WordPress после ошибок
23.12.2025
Как очистить базу данных WordPress от мусора и удалённых остатков
06.03.2026
Как использовать REST API WordPress для автоматизации и расширения функционала
13.12.2025
Использование фильтра pre_get_posts для изменения запросов WordPress
21.04.2026
Как использовать WP-Cron для автоматического удаления старого контента в WordPress
11.05.2026