Как отключить AJAX-загрузку товаров в WooCommerce для улучшения совместимости

|

Диагностика проблемы с AJAX-загрузкой товаров в WooCommerce

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

Проверьте консоль браузера (F12 > Console) на наличие ошибок JavaScript при использовании фильтров или пагинации. Также обратите внимание на правильность обновления URL и содержимого каталога.

Пошаговое решение: отключаем AJAX-загрузку товаров

WooCommerce не предоставляет прямого параметра в админке для отключения AJAX-загрузки на страницах каталога, поэтому нужно внести изменения программно.

1. Отключение AJAX-подгрузки на странице магазина и архивов

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

function disable_woocommerce_ajax_catalog() {
    // Удаляем поддержку AJAX в виджетах фильтра по цене
    remove_action('wp_enqueue_scripts', array(WC()->widget_factory->widgets['WC_Widget_Price_Filter'], 'enqueue_ajax_script'));

    // Отключаем AJAX в виджете фильтра по цене
    add_filter('woocommerce_price_filter_widget_use_ajax', '__return_false');

    // Отключаем AJAX-пагинацию
    add_filter('woocommerce_product_filters_ajax_enabled', '__return_false');
}
add_action('wp_loaded', 'disable_woocommerce_ajax_catalog');

Этот код отключит AJAX-загрузку в виджетах фильтров и пагинации.

2. Отключение AJAX в кастомных плагинах и темах

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

Например, если в вашей теме есть скрипт ajax-shop.js, отключите его в functions.php:

function dequeue_ajax_shop_script() {
    wp_dequeue_script('ajax-shop');
}
add_action('wp_enqueue_scripts', 'dequeue_ajax_shop_script', 20);

Проверка результата после отключения AJAX

Частые ошибки и как их исправить

1. AJAX продолжает работать после внесения изменений

Причина: другие плагины или тема могут подключать собственные AJAX-скрипты.

Решение: используйте плагин Query Monitor для выявления подключаемых скриптов и отключайте их с помощью wp_dequeue_script.

2. Фильтры товаров не работают после отключения AJAX

Причина: фильтры настроены только на работу с AJAX и не поддерживают стандартную перезагрузку страниц.

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

Практические советы по безопасности и производительности

Сравнение способов отключения AJAX-загрузки товаров

МетодОписаниеПлюсыМинусы
Удаление AJAX-поддержки через хуки WooCommerceОтключение AJAX в стандартных фильтрах и пагинацииПростая реализация, не требует изменений в JSМожет не отключить кастомные AJAX-скрипты
Отключение кастомных AJAX-скриптовДеактивация JS-файлов темы или плагиновПолный контроль над AJAXТребует анализа и тестирования, может привести к потере функционала
Использование плагинов для управления AJAXПлагины с настройками AJAXГибкие настройки без кодаЗависимость от сторонних решений, нагрузка на сайт
Создание адаптивного видеоформата в WordPress: примеры и решение проблем
10.01.2026
Как автоматизировать создание и удаление пользовательских ролей в WordPress с примерами кода
19.02.2026
Как автоматизировать управление трансляциями в WordPress с помощью плагинов и кода
03.04.2026
Как использовать хук WooCommerce 'woocommerce_order_status_changed' для автоматизации процессов
21.06.2026
Как автоматизировать управление виджетами в WordPress: практические решения
04.02.2026
×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее