Бесконечная прокрутка — это удобный способ улучшить пользовательский опыт, особенно для сайтов с большим количеством контента. Вместо перехода по страницам пользователи видят новые записи автоматически при прокрутке. Рассмотрим, как реализовать эту функцию.

Использование плагинов

Самый простой способ добавить бесконечную прокрутку — установить плагин, например, Catch Infinite Scroll.

  • Шаг 1: Перейдите в Плагины → Добавить новый.
  • Шаг 2: Найдите плагин Infinite Scroll и установите его.
  • Шаг 3: Активируйте плагин и настройте его под свои нужды.

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

Настройка через тему

Некоторые темы WordPress, такие как GeneratePress или Astra, поддерживают бесконечную прокрутку из коробки.

  • Перейдите в Настройки → Чтение.
  • Найдите опцию «Бесконечная прокрутка» и активируйте ее.

Ручная реализация

Если вы хотите добавить бесконечную прокрутку вручную, можно использовать JavaScript и AJAX.

  • Добавьте следующий код в файл functions.php:
function infinite_scroll_js() {
    if (is_home()) {
        wp_enqueue_script('infinite-scroll', get_template_directory_uri() . '/js/infinite-scroll.js', array('jquery'), null, true);
    }
}
add_action('wp_enqueue_scripts', 'infinite_scroll_js');

Создайте файл infinite-scroll.js и добавьте в него код для загрузки новых записей:

jQuery(function($) {
    let page = 2;
    $(window).scroll(function() {
        if ($(window).scrollTop() + $(window).height() >= $(document).height() - 100) {
            $.ajax({
                url: ajaxurl,
                data: {
                    action: 'load_posts',
                    page: page
                },
                success: function(response) {
                    if (response) {
                        $('#posts-container').append(response);
                        page++;
                    }
                }
            });
        }
    });
});

Добавьте обработчик AJAX в functions.php:

function load_posts() {
    $page = $_POST['page'];
    $args = array(
        'post_type' => 'post',
        'paged' => $page
    );
    $query = new WP_Query($args);
    if ($query->have_posts()) {
        while ($query->have_posts()) {
            $query->the_post();
            get_template_part('template-parts/content', get_post_format());
        }
    }
    wp_die();
}
add_action('wp_ajax_load_posts', 'load_posts');
add_action('wp_ajax_nopriv_load_posts', 'load_posts');

Проверка работы

После настройки проверьте, как работает бесконечная прокрутка. Убедитесь, что новые записи загружаются корректно и нет ошибок.

Заключение

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