Как отключить AJAX пагинацию в WordPress: практические решения

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

Что такое AJAX пагинация и почему ее нужно отключать

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

  • Поисковые системы могут некорректно индексировать контент.
  • Могут возникать конфликты с другими плагинами или скриптами.
  • Сложнее отлаживать и тестировать сайт.

Если вы столкнулись с подобными проблемами, отключение AJAX пагинации — правильное решение.

Как определить, что AJAX пагинация используется на сайте

Для начала нужно понять, что именно на вашем сайте отвечает за AJAX пагинацию. Обычно это делают темы или плагины, например:

  • WooCommerce — использует AJAX для фильтрации товаров и пагинации.
  • Плагины типа WP-PageNavi Ajax — добавляют AJAX пагинацию.
  • Кастомные темы — могут реализовывать AJAX пагинацию самостоятельно.

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

Отключение AJAX пагинации в WooCommerce

WooCommerce часто применяет AJAX при фильтрации и пагинации товаров. Чтобы отключить AJAX пагинацию, можно добавить следующий код в файл functions.php вашей темы или в плагин-«муфту»:

function wpsnippets_disable_ajax_pagination() {
    if ( class_exists( 'WooCommerce' ) ) {
        // Отключаем AJAX для пагинации
        add_filter( 'woocommerce_product_filters_has_ajax_pagination', '__return_false' );
    }
}
add_action( 'init', 'wpsnippets_disable_ajax_pagination' );

Этот фильтр отключит AJAX пагинацию в стандартных WooCommerce фильтрах и пагинации.

Дополнительный способ — отключение AJAX скриптов

Если вышеуказанный способ не помог, можно просто отключить скрипты, отвечающие за AJAX пагинацию, например, так:

function wpsnippets_dequeue_woocommerce_ajax_scripts() {
    wp_dequeue_script( 'wc-add-to-cart-variation' );
    wp_dequeue_script( 'wc-cart-fragments' );
    wp_dequeue_script( 'woocommerce' );
    wp_dequeue_script( 'jquery-blockui' );
}
add_action( 'wp_print_scripts', 'wpsnippets_dequeue_woocommerce_ajax_scripts', 100 );

Будьте осторожны — это может повлиять на другие функции WooCommerce.

Отключение AJAX пагинации в популярных плагинах

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

Например, для плагина WP-PageNavi Ajax можно отключить AJAX следующим образом:

function wpsnippets_disable_wppagenavi_ajax() {
    wp_dequeue_script( 'wppagenavi-ajax' );
}
add_action( 'wp_enqueue_scripts', 'wpsnippets_disable_wppagenavi_ajax', 20 );

Как найти нужные скрипты для отключения

Чтобы понять, какие скрипты отвечают за AJAX пагинацию, откройте инструменты разработчика в браузере, перейдите во вкладку Network и посмотрите, какие AJAX-запросы отправляются при переключении страниц.

Также во вкладке Sources можно увидеть названия скриптов и их источники — это поможет написать правильные функции для отключения.

Ручное удаление AJAX пагинации из темы

В некоторых темах AJAX пагинация реализована кастомно. Тогда придется искать в коде темы JavaScript, отвечающий за динамическую подгрузку страниц, и отключать или модифицировать его.

Например, если в теме есть такой скрипт:

jQuery(document).on('click', '.ajax-pagination a', function(e) {
    e.preventDefault();
    // AJAX запрос для загрузки контента
});

Можно удалить этот обработчик, либо изменить шаблон темы, чтобы ссылки в пагинации были обычными ссылками без JS.

Пример удаления обработчика в вашем скрипте

function wpsnippets_remove_ajax_pagination_handler() {
    wp_add_inline_script( 'custom-theme-script', "jQuery(document).off('click', '.ajax-pagination a');" );
}
add_action( 'wp_enqueue_scripts', 'wpsnippets_remove_ajax_pagination_handler', 30 );

Этот код отключит обработчик клика по ссылкам пагинации с классом ajax-pagination.

Выводы и рекомендации

Отключение AJAX пагинации — полезный навык для разработчиков и администраторов сайтов на WordPress. Это помогает решить проблемы с SEO и совместимостью скриптов.

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

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

WooCommerce: как отключить повышение суммы платежа при изменении заказа
26.04.2026
WooCommerce: как отключить повышение суммы платежа при изменении заказа
23.04.2026
WooCommerce: как изменить цену товара без повышения суммы платежа при изменении заказа
29.04.2026
Как создать динамический список выборок в WordPress с помощью WP_Query
26.01.2026
WooCommerce: как изменить статус заказа без повышения суммы платежа
23.04.2026