Как добавить динамические строки в WordPress теме с помощью AJAX

Что такое динамические строки и почему они важны в WordPress теме

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

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

Это решение особенно актуально для тем, где важна интерактивность, например, в теме Reboot, но и в любой другой теме подобный подход повысит гибкость отображения контента.

Шаг 1. Регистрация AJAX обработчиков в functions.php

Первым делом нам нужно зарегистрировать обработчики AJAX запросов в файле functions.php вашей темы. Для этого создадим две функции: одну для авторизованных пользователей, вторую — для гостей. Это стандартная практика в WordPress.

function wp_theme_ru_ajax_get_dynamic_string() {
    // Пример получения динамической строки, например текущего времени
    $dynamic_string = 'Текущее время сервера: ' . date('H:i:s');
    wp_send_json_success($dynamic_string);
}
add_action('wp_ajax_wp_theme_ru_get_dynamic_string', 'wp_theme_ru_ajax_get_dynamic_string');
add_action('wp_ajax_nopriv_wp_theme_ru_get_dynamic_string', 'wp_theme_ru_ajax_get_dynamic_string');

Здесь мы создали функцию wp_theme_ru_ajax_get_dynamic_string, которая возвращает простую строку с временем сервера. Она подключена к AJAX экшенам wp_ajax_... и wp_ajax_nopriv_..., чтобы работать и для авторизованных, и для неавторизованных пользователей.

Шаг 2. Добавление JavaScript для отправки AJAX запроса

Чтобы динамически обновлять текст на фронтенде, нам нужен скрипт. Добавим его и подключим через функцию в functions.php:

function wp_theme_ru_enqueue_scripts() {
    wp_enqueue_script('wp-theme-ajax-script', get_template_directory_uri() . '/js/wp-theme-ajax.js', array('jquery'), null, true);
    wp_localize_script('wp-theme-ajax-script', 'wpThemeAjax', array(
        'ajax_url' => admin_url('admin-ajax.php'),
        'nonce' => wp_create_nonce('wp_theme_ajax_nonce')
    ));
}
add_action('wp_enqueue_scripts', 'wp_theme_ru_enqueue_scripts');

Теперь создадим файл js/wp-theme-ajax.js с таким содержимым:

jQuery(document).ready(function($) {
    function wp_theme_ru_updateDynamicString() {
        $.ajax({
            url: wpThemeAjax.ajax_url,
            type: 'POST',
            data: {
                action: 'wp_theme_ru_get_dynamic_string',
                _ajax_nonce: wpThemeAjax.nonce
            },
            success: function(response) {
                if(response.success) {
                    $('#wp-theme-ajax-string').text(response.data);
                }
            }
        });
    }

    // Обновлять строку каждые 10 секунд
    wp_theme_ru_updateDynamicString();
    setInterval(wp_theme_ru_updateDynamicString, 10000);
});

Этот скрипт отправляет AJAX POST запрос каждые 10 секунд и обновляет содержимое элемента с id wp-theme-ajax-string на странице.

Шаг 3. Добавление HTML-контейнера в тему для отображения динамических строк

В нужном месте шаблона темы (например, в header.php или в шаблоне страницы) добавьте HTML элемент, куда будет выводиться динамическая строка:

<div id="wp-theme-ajax-string">Загрузка...</div>

Когда страница загрузится, JavaScript заменит текст на актуальный, полученный с сервера.

Шаг 4. Обработка безопасности и проверка nonce

Для безопасности желательно проверить nonce в функции обработчике AJAX, чтобы убедиться, что запросы идут с вашего сайта:

function wp_theme_ru_ajax_get_dynamic_string() {
    check_ajax_referer('wp_theme_ajax_nonce', '_ajax_nonce');

    $dynamic_string = 'Текущее время сервера: ' . date('H:i:s');
    wp_send_json_success($dynamic_string);
}

Это защитит от CSRF атак и несанкционированных запросов.

Дополнительные примеры использования динамических строк с AJAX

1. Отображение количества товаров в корзине WooCommerce без перезагрузки. Можно сделать AJAX-запрос к серверу, который вернет актуальное число товаров, и обновлять его в шапке сайта.

2. Динамические сообщения об ошибках при заполнении форм. Например, при вводе email можно отправлять AJAX запрос, который проверит, существует ли пользователь с таким email.

3. Обновление счетчиков лайков или просмотров постов. Это повысит интерактивность без нагрузки на страницу.

Интеграция с плагином Clearfy Pro для оптимизации AJAX

Если вы используете Clearfy Pro, то он поможет оптимизировать и ускорить обработку AJAX запросов, отключая лишние скрипты и улучшая производительность. Это особенно полезно, если динамических запросов много.

Выводы и советы

Добавление динамических строк с помощью AJAX — это простой и мощный способ улучшить UX вашей WordPress темы. Важно:

  • Правильно регистрировать AJAX обработчики с проверкой nonce.
  • Оптимизировать запросы, не перегружать сервер частыми обновлениями.
  • Использовать кэширование там, где это возможно, чтобы снизить нагрузку.
  • Тестировать на разных устройствах и браузерах.

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

Как удалить неиспользуемые стили и скрипты в теме WordPress для ускорения сайта
14.02.2026
Как добавить собственный тип записей в WordPress
13.11.2025
Как удалить избитые стили и скрипты из темы WordPress для ускорения сайта
20.04.2026
Как добавить поддержку WOFF2 шрифтов в тему WordPress
08.04.2026
Как добавить автоматическое обновление тем в WordPress
06.02.2026