В современных темах и плагинах WordPress часто используется AJAX пагинация для динамической подгрузки контента без перезагрузки страницы. Однако в некоторых случаях AJAX пагинация может вызывать проблемы с индексацией сайта, снижать скорость или создавать конфликты с другими скриптами. В этой статье мы подробно рассмотрим, как отключить AJAX пагинацию в WordPress вручную, без установки дополнительных плагинов, и дадим практические рекомендации с примерами кода.
Что такое AJAX пагинация и зачем ее отключать
AJAX пагинация — это метод загрузки следующей страницы постов или товаров без полной перезагрузки страницы, с помощью JavaScript и AJAX-запросов. Это повышает удобство пользователя и ускоряет навигацию, но иногда:
- Поисковые роботы не всегда корректно индексируют AJAX-загружаемый контент.
- Возникают конфликты с другими плагинами или кастомными скриптами.
- Увеличивается нагрузка на сервер из-за частых AJAX-запросов.
Если вы используете тему или плагин с AJAX пагинацией и хотите вернуть классическую загрузку страниц, отключение AJAX будет лучшим решением.
Как определить, используется ли AJAX пагинация в вашей теме
Первым делом нужно понять, действительно ли ваша тема применяет AJAX пагинацию. Для этого:
- Откройте страницу с постами или товарами и попробуйте перейти на следующую страницу. Если при клике на номер страницы или кнопку «Показать еще» страница не перезагружается, а контент подгружается динамически — это AJAX пагинация.
- Посмотрите исходный код темы, обычно AJAX пагинация реализуется через JavaScript-файлы. В консоли браузера в разделе «Network» при переходе на другую страницу будут AJAX-запросы.
Чаще всего AJAX пагинация реализуется через jQuery и функции типа $.ajax() или fetch().
Отключаем AJAX пагинацию: общий подход
Чтобы отключить AJAX пагинацию, нужно убрать или изменить JavaScript, который отвечает за динамическую подгрузку, и вернуть стандартные ссылки пагинации с перезагрузкой страницы.
Рассмотрим общий алгоритм действий:
- Найдите и отключите скрипт, который инициализирует AJAX пагинацию.
- Убедитесь, что в шаблоне пагинация генерируется с помощью стандартной функции
paginate_links()илиthe_posts_pagination(). - Если пагинация генерируется вручную, поправьте ссылки на страницы, чтобы они вели на URL с параметром
paged. - Очистите кэш браузера и сайта, чтобы проверить результат.
Пример: отключение AJAX пагинации в файлах темы
Предположим, в вашей теме есть скрипт ajax-pagination.js, который подключается в functions.php так:
function wpto_dequeue_ajax_pagination() {
wp_dequeue_script('ajax-pagination');
}
add_action('wp_print_scripts', 'wpto_dequeue_ajax_pagination', 100);
Этот код отключит загрузку скрипта, отвечающего за AJAX пагинацию.
Если скрипт подключается иначе, например, через wp_enqueue_scripts, используйте wp_dequeue_script() и wp_deregister_script() с соответствующим именем.
Корректное отображение пагинации после отключения AJAX
После отключения AJAX важно, чтобы пагинация работала корректно. В шаблоне архива (например, archive.php или index.php) используйте стандартную функцию:
if (function_exists('the_posts_pagination')) {
the_posts_pagination(array(
'mid_size' => 2,
'prev_text' => __('« Назад'),
'next_text' => __('Вперед »'),
));
}
Эта функция выведет ссылки пагинации с нормальными URL, например site.ru/page/2/, которые обеспечат перезагрузку страницы.
Как сохранить SEO и UX после отключения AJAX пагинации
Отключая AJAX, не забывайте о двух важных вещах:
Оптимизация SEO
Стандартная пагинация лучше индексируется поисковыми системами. Убедитесь, что ссылки пагинации корректно формируются и доступны для роботов. Можно дополнительно использовать плагин Clearfy Pro, который помогает управлять индексацией страниц и улучшает SEO.
Удобство пользователей
Чтобы пользователям было комфортно переходить между страницами, добавьте стили для пагинации и, по желанию, реализуйте плавную прокрутку к началу списка постов при смене страницы. Пример такого скрипта:
document.querySelectorAll('.pagination a').forEach(link => {
link.addEventListener('click', function(e) {
// Плавный скролл после перехода
setTimeout(() => window.scrollTo({ top: 0, behavior: 'smooth' }), 100);
});
});
Альтернативы: использование плагинов с возможностью включения/отключения AJAX
Если вы хотите иметь возможность включать и отключать AJAX пагинацию без правки кода, можно воспользоваться плагинами, которые поддерживают такую настройку. Например, ABC Pagination позволяет гибко управлять пагинацией, включая опцию отключения AJAX.
Итоги и полезные советы
- Перед внесением изменений сделайте резервную копию сайта.
- Проверяйте работу пагинации на разных устройствах и браузерах.
- Если AJAX пагинация идет из плагина, попробуйте отключить ее в настройках плагина.
- Для кастомных тем рекомендуется использовать стандартные функции WordPress для пагинации.
- Используйте инструменты разработчика браузера для выявления скриптов, отвечающих за AJAX.
Отключение AJAX пагинации вручную — простой и эффективный способ решить проблемы с SEO, совместимостью и производительностью на сайте WordPress без лишних плагинов.