AJAX подгрузка комментариев становится популярной функцией для улучшения UX на сайтах WordPress. Однако в некоторых случаях её стоит отключить — например, если тема или плагин реализуют подгрузку некорректно, вызывая конфликты или замедляя работу сайта. В этой статье подробно разберём, как отключить AJAX подгрузку комментариев, какие существуют методы и что делать, чтобы сохранить удобство пользователей.
Что такое AJAX подгрузка комментариев и зачем её отключать
AJAX (Asynchronous JavaScript and XML) позволяет загружать новые комментарии на странице без полной перезагрузки. Это удобно, когда комментариев много — посетителю не нужно ждать загрузки всей страницы заново. Однако:
- Некоторые темы или плагины используют AJAX подгрузку с ошибками, что приводит к багам.
- AJAX-запросы добавляют нагрузку на сервер, особенно при большом количестве посетителей.
- Для SEO и индексирования комментариев поисковыми системами лучше, чтобы все комментарии были доступны без JavaScript.
- Некоторые разработчики предпочитают классическую пагинацию или отображение всех комментариев сразу.
Если вы столкнулись с проблемами или хотите отключить AJAX-подгрузку в WordPress, ниже рассмотрим как это сделать.
Как определить, что на сайте включена AJAX подгрузка комментариев
Прежде чем отключать, убедитесь, что именно AJAX отвечает за подгрузку комментариев. Для проверки:
- Откройте страницу поста с комментариями.
- Прокрутите вниз и нажмите кнопку «Загрузить ещё комментарии» или аналогичную.
- Если комментарии подгружаются без перезагрузки страницы, используется AJAX.
- Можно также проверить в консоли браузера (F12 > Network) — при нажатии на кнопку видите AJAX-запросы к серверу.
Если AJAX действительно работает, можно переходить к отключению.
Отключение AJAX подгрузки комментариев через функции темы
Часто AJAX-подгрузка реализуется через добавление скриптов или фильтров в functions.php темы или плагина. Ниже приведён пример, как отключить AJAX подгрузку комментариев, если она добавлена через стандартный механизм WordPress или кастомную функцию.
Добавьте в файл functions.php вашей дочерней темы или в файл своего пользовательского плагина следующий код:
function wpclass_disable_ajax_comments() {
// Отключаем скрипт, отвечающий за AJAX подгрузку комментариев
wp_dequeue_script('ajax-comments');
wp_deregister_script('ajax-comments');
}
add_action('wp_enqueue_scripts', 'wpclass_disable_ajax_comments', 100);В этом примере ajax-comments — условное название скрипта. Чтобы узнать точное имя, проверьте вызовы wp_enqueue_script вашей темы или плагина, который добавляет AJAX подгрузку.
Если подгрузка реализована через плагин, можно отключить его функционал через фильтры или настройки. Например, если это плагин с именем wp-ajax-comments, ищите в его документации способы отключения AJAX.
Отключение AJAX подгрузки в популярных плагинах комментариев
Рассмотрим примеры отключения AJAX в некоторых популярных плагинах:
1. Jetpack Comments
Jetpack по умолчанию использует AJAX для подгрузки комментариев. Чтобы отключить:
- Перейдите в Jetpack > Настройки > Обсуждение.
- Отключите опцию «Загрузить комментарии с помощью AJAX».
2. wpDiscuz
В настройках плагина есть отдельный пункт для AJAX подгрузки. Чтобы отключить:
- Перейдите в wpDiscuz > Настройки > Общие.
- Отключите «Включить AJAX подгрузку комментариев».
Если нужно программно, можно использовать фильтр:
add_filter('wpdiscuz_ajax_comments', '__return_false');3. Lazy Load для комментариев с помощью плагина ABC Pagination
Если вы используете плагин ABC Pagination для AJAX пагинации комментариев, отключить AJAX можно в настройках плагина, либо убрать подключение скриптов аналогично примеру выше.
Создание альтернативы: пагинация без AJAX с помощью кода
Если вы отключили AJAX, вероятно, вам понадобится классическая пагинация комментариев. WordPress имеет штатную поддержку пагинации комментариев. Для её включения в теме используйте следующий код в шаблоне comments.php:
if (get_comment_pages_count() > 1 && get_option('page_comments')) {
paginate_comments_links(array(
'prev_text' => '< Назад',
'next_text' => 'Вперёд >'
));
}Также в functions.php проверьте, что включена пагинация:
function wpclass_enable_comment_pagination() {
update_option('page_comments', 1);
update_option('comments_per_page', 20); // Количество комментариев на страницу
}
add_action('after_setup_theme', 'wpclass_enable_comment_pagination');Это позволит выводить комментарии постранично без AJAX, улучшая совместимость и SEO.
Оптимизация после отключения AJAX подгрузки комментариев
После отключения AJAX важно оптимизировать вывод комментариев для сохранения производительности и удобства:
- Установите лимит комментариев на страницу — 20-30 штук, чтобы не тормозила загрузка.
- Используйте кэширование страниц и объектов, например, через Redis или Memcached.
- Отключите лайв-обновление комментариев, если оно есть в теме или плагинах.
- Для улучшения отображения можно применить плагины типа Clearfy Pro, которые оптимизируют работу комментариев и админки.
Итоговые рекомендации и проверка работы
После внесения всех изменений:
- Очистите кеш браузера и сайта.
- Проверьте, что комментарии теперь подгружаются с полной перезагрузкой страницы.
- Убедитесь, что пагинация работает корректно.
- Проверьте консоль браузера на отсутствие ошибок JavaScript.
- Проверьте в поисковой выдаче, что все комментарии индексируются.
Таким образом, вы сможете отключить AJAX подгрузку комментариев и при этом сохранить удобство и производительность сайта.