Как сделать постраничную пагинацию WordPress на Ajax?

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

1. Создать функцию для обработки Ajax-запросов. Для этого можно использовать стандартные функции WordPress add_action и wp_ajax_nopriv_*.

// Для авторизированных пользователей
add_action('wp_ajax_my_pagination', 'my_pagination_function');
// Для неавторизированных пользователей
add_action('wp_ajax_nopriv_my_pagination', 'my_pagination_function');

function my_pagination_function() {
    // Здесь происходит обработка Ajax-запроса и вывод нужной страницы
    // ...
    wp_die(); // Обязательно вызываем эту функцию в конце обработчика, чтобы прекратить обработку
}

2. В файле, где отображается пагинация, добавить JavaScript-код для обработки нажатий на стрелки пагинации и выполнения Ajax-запросов.

jQuery(document).ready(function($) {
    $('.pagination a').click(function(e) {
        e.preventDefault();
        var page = $(this).attr('href');
        
        // Выполняем Ajax-запрос
        $.ajax({
            url: my_ajax_obj.ajax_url, // Путь к файлу обработчику
            type: 'POST',
            data: {
                action: 'my_pagination', // Имя действия, которое будет вызвано в PHP
                page: page // Номер страницы, который нужно загрузить
            },
            success: function(response) {
                // Обработка ответа от сервера
                // ...
            },
            error: function() {
                // Обработка ошибки
                // ...
            }
        });
    });
});

3. Внутри функции my_pagination_function необходимо обработать Ajax-запрос, получить номер страницы, загрузить соответствующий контент и вернуть его в Ajax-ответе. Ниже приведен пример кода:

function my_pagination_function() {
    global $wp_query;
    
    // Получаем номер страницы
    $page = $_POST['page'];
    
    // Используем $page для настройки WP_Query
    $args = array(
        'post_type' => 'post',
        'paged' => $page
    );
    $wp_query = new WP_Query($args);
    
    // Загружаем нужный шаблон
    get_template_part('template-parts/content');
    
    wp_die();
}

4. В вашем файле шаблона, где отображается постраничная пагинация, нужно добавить класс "pagination" к контейнеру пагинации.

<div class="pagination">
    <?php previous_posts_link('« Previous', $wp_query->max_num_pages) ?>
    <?php next_posts_link('Next »', $wp_query->max_num_pages) ?>
</div>

Все вышеперечисленные шаги позволят реализовать постраничную пагинацию на WordPress с использованием Ajax. Убедитесь, что код правильно интегрирован в вашу тему WordPress и функционирует корректно.