Если на сайте JournalX категории начинают подгружать записи бесконечно, это удобно не всегда. Для новостных и журнальных проектов обычная пагинация часто лучше: проще контролировать индексацию, легче анализировать глубину просмотра и меньше сюрпризов с кэшем и аналитикой.
Ниже — рабочий сценарий именно для архивов категорий: как найти, что именно включает infinite scroll, как переключить поведение на пагинацию и как проверить, что тема действительно перестала подгружать новые записи через AJAX.
Когда бесконечный скролл в категориях мешает
Проблема обычно проявляется не в интерфейсе как таковом, а в эксплуатации сайта. Редактору сложно дать ссылку на конкретную страницу выдачи, аналитика хуже показывает переходы между страницами, а при активном кэшировании часть пользователей видит устаревший список записей или повторяющиеся блоки.
Для категорий это особенно заметно, если:
- в архиве много материалов и пользователь долго листает ленту;
- страницы категорий попадают в индекс и важна предсказуемая структура URL;
- на сайте используется сторонний кэш или CDN;
- нужно тестировать CTR и поведение на второй, третьей и последующих страницах.
Диагностика: что именно включает подгрузку в JournalX
Сначала не трогайте код. В JournalX бесконечный скролл может быть включен глобально или отдельно для архивов, главной и страниц авторов. Если вы меняете только один шаблон, а AJAX-подгрузка остается, значит настройка сидит в другом месте или переопределяется дочерней темой.
Что проверить в админке
- Настройки темы JournalX, связанные с архивами и навигацией по записям.
- Отдельные параметры для категорий, главной и страниц авторов.
- Нет ли активного плагина, который подменяет стандартную пагинацию.
Если в настройках темы нет явного переключателя для категорий, проверьте шаблон архива в дочерней теме. Иногда тема использует один и тот же компонент для нескольких типов архивов, и визуально кажется, что меняется только категория, а фактически логика общая.
Как быстро понять, что используется AJAX
Откройте категорию в браузере и пролистайте страницу вниз. Если при достижении конца списка в Network появляются запросы к admin-ajax.php или к REST-эндпоинту темы, значит подгрузка идет скриптом, а не обычной навигацией. Это важный момент: простое скрытие кнопки ничего не даст, если JS продолжает подменять поведение.
Пошаговое решение: отключаем infinite scroll для категорий
Самый безопасный путь — сначала сделать настройку в теме, а уже потом, если нужно, добирать кодом в дочерней теме. Так вы не сломаете обновления и не потеряете изменения при апдейте.
Шаг 1. Переключите режим навигации в настройках темы
Если в JournalX есть отдельная опция для архивов категорий, выберите обычную пагинацию. После сохранения очистите кэш страницы и браузера. На этом этапе уже можно проверить, исчезла ли автоподгрузка.
Если настройка есть только для общих архивов, а категории продолжают вести себя как infinite scroll, значит нужен точечный фильтр или переопределение шаблона.
Шаг 2. Отключите подгрузку через код в дочерней теме
Ниже пример подхода, когда тема отдает параметр через фильтр. Название фильтра зависит от реализации JournalX, поэтому сначала ищите его в исходниках темы по словам infinite, pagination или archive. Если фильтр есть, логика обычно выглядит так:
<?php
add_filter( 'journalx_archive_infinite_scroll', function( $enabled, $context ) {
if ( is_category() ) {
return false;
}
return $enabled;
}, 10, 2 );Если тема не дает фильтр, а вывод архива строится через шаблон, меняйте не JS, а саму разметку навигации. Для категории должен быть обычный блок paginate_links() или эквивалентный вызов темы.
<?php
if ( have_posts() ) {
while ( have_posts() ) {
the_post();
get_template_part( 'template-parts/content', get_post_type() );
}
the_posts_pagination( array(
'mid_size' => 1,
'prev_text' => '← Назад',
'next_text' => 'Вперед →',
) );
}Этот вариант надежнее, чем попытка «отключить скрипт» через удаление JS-файла. Если тема ожидает определенную разметку, а вы просто уберете скрипт, может остаться пустая кнопка или сломанная подгрузка внизу страницы.
Шаг 3. Проверьте, не подключается ли скрипт повторно
После правки откройте категорию в режиме инкогнито и пролистайте до конца. Если запросы к AJAX больше не идут, а URL меняется на /page/2/, /page/3/ и так далее, значит пагинация работает как обычная серверная навигация.
Как проверить результат после внедрения
Проверка нужна не только визуально. Иногда интерфейс уже выглядит как пагинация, но скрипт все еще подгружает записи и дублирует контент в DOM.
- Откройте категорию и проверьте, что внизу есть ссылки на страницы, а не бесконечный лоадер.
- В DevTools на вкладке Network убедитесь, что при прокрутке не появляются новые AJAX-запросы.
- Перейдите на вторую страницу категории по прямому URL и проверьте, что контент отличается от первой страницы.
- Посмотрите исходный HTML: внизу должна быть серверная пагинация, а не контейнер для подгрузки.
Если сайт использует кэш, очистите его после изменения шаблона. Иначе можно проверить старую версию страницы и сделать ложный вывод, что правка не сработала.
Сравнение подходов: настройка, код или шаблон
| Подход | Когда подходит | Плюсы | Минусы |
|---|---|---|---|
| Настройка темы | Если JournalX уже умеет переключать режим архива | Быстро, безопасно, без правки файлов | Не всегда есть отдельная опция для категорий |
| Фильтр в дочерней теме | Если тема отдает параметр через hook | Не ломает обновления, можно точечно отключить для категорий | Нужно найти реальный фильтр в коде темы |
| Переопределение шаблона | Если логика зашита в template part | Полный контроль над выводом | Больше риск ошибок при обновлении и конфликтов верстки |
Частые ошибки и как их исправить
Отключили только кнопку, а подгрузка осталась
Это типичная ошибка, когда правят CSS или скрывают элемент в шаблоне. Скрипт продолжает работать, а пользователь все равно получает AJAX-запросы. Исправление одно: отключать сам механизм подгрузки, а не только его визуальный триггер.
Поменяли шаблон, но категория все равно ведет себя как раньше
Чаще всего виноват кэш или дочерняя тема, где остался старый шаблон. Проверьте, какой файл реально используется, и очистите кэш плагина, сервера и CDN.
Сломалась навигация на второй странице
Обычно это значит, что в шаблоне не выводится стандартная пагинация или конфликтует кастомный query. Если вы меняете основной архив, используйте the_posts_pagination() или корректный эквивалент, а не ручную сборку ссылок без учета текущего запроса.
Скролл отключили в категории, но он остался на главной
Это нормально, если тема хранит настройки отдельно для разных шаблонов. Не переносите правку вслепую: сначала найдите, где именно включен infinite scroll, и отключайте только нужный контекст.
Практические советы по производительности и безопасности
Если на сайте много архивов, обычная пагинация часто предсказуемее для кэша. Серверу проще отдавать фиксированные страницы, а пользователю — делиться ссылкой на конкретный экран выдачи. Но не стоит отключать бесконечный скролл только ради «ускорения»: выигрыш зависит от темы, кэша и объема контента.
Для аккуратной технической чистки в WordPress полезно держать под рукой инструменты, которые не вмешиваются в логику темы без необходимости. Например, Clearfy Pro уместен, если вместе с архивами нужно убрать дубли, лишние элементы и часть технического шума. Ссылка на плагин: https://wpshop.ru/plugins/clearfy.
Если вы вносите изменения кодом, держите их в дочерней теме или в небольшом mu-plugin. Не редактируйте файлы родительской темы напрямую: при обновлении JournalX правка исчезнет, а проблема вернется в самый неудобный момент.
Что делать, если в JournalX нет отдельной настройки для категорий
Тогда остаются два нормальных пути: найти фильтр в исходниках темы или переопределить шаблон архива в дочерней теме. Если в коде темы нет ни фильтра, ни понятного шаблона для подгрузки, не пытайтесь отключать все скрипты подряд. Это почти всегда приводит к побочным поломкам в других архивах.
Практически полезный порядок такой: сначала проверка настроек, потом поиск фильтра, затем шаблон, и только после этого точечная правка JS, если она действительно нужна. В большинстве случаев до JS дело не доходит.