WordPress. Как с помощью Ajax отсортировать посты по году и перерендерить постраничную пагинацию?

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

1. **Регистрация AJAX обработчика:**
Начнем с регистрации AJAX обработчика. Вам нужно добавить следующий код в файл функций вашей темы (functions.php):

add_action('wp_ajax_filter_posts_by_year', 'filter_posts_by_year');
add_action('wp_ajax_nopriv_filter_posts_by_year', 'filter_posts_by_year');

function filter_posts_by_year() {
    $year = isset($_POST['year']) ? $_POST['year'] : '';

    // Здесь вам нужно написать логику выборки постов по году

    wp_die();
}

2. **Javascript для обработки события сортировки постов:**
Добавьте следующий JavaScript код, который будет отправлять AJAX запрос на сервер для фильтрации постов по году:

jQuery(function($) {
    $('#filter-by-year').change(function() {
        var selectedYear = $(this).val();

        $.ajax({
            url: ajaxurl,
            type: 'POST',
            data: {
                action: 'filter_posts_by_year',
                year: selectedYear
            },
            success: function(response) {
                // Здесь обновляйте контент постов и пагинации на странице
            }
        });
    });
});

3. **Обновление контента постов и пагинации:**
В функции обработчика AJAX запроса (filter_posts_by_year), вам нужно написать логику выборки постов по заданному году и возврата HTML контента постов и пагинации. После обновления контента на клиентской стороне, вам нужно обновить HTML элементы, содержащие посты и пагинацию.

4. **Обновление постраничной пагинации:**
Для обновления постраничной пагинации после AJAX запроса, вам может потребоваться использовать плагин, такой как "Ajax Pagination and Infinite Scroll". Этот плагин позволит динамически обновлять постраничную навигацию после сортировки постов.

Это базовый шаблон того, как можно реализовать сортировку постов по году с помощью Ajax в WordPress. Не забывайте обработать возможные ошибки и защитить ваш AJAX обработчик от злоумышленников.