Не работает ajax подгрузка постов WordPress

Есть страничка постов с табами для каждой категории, выглядит это так: введите сюда описание изображения

В каждой вкладке соответственно выводятся посты из своей категории и подгрузка должна подгружать свои посты для каждой вкладки. Плюс здесь должен быть вывод из 4х конкретных категорий. На данный момент видно что в data-true-posts копки передаются какие-то данные, но кнопка вроде как показывает загрузку, пропадает и при этом посты новые не подгружает. Вывод постов из своей категории для каждой вкладки тоже работает. Это страница блога, код в файле index.php:

<?php $categories = get_categories([
                        'include'   => array(20,21,22,8)
                    ]);
                    foreach( $categories as $key => $category) : ?>
                    <?php $args = array(
                        'posts_per_page' => 1,
                        'post_type' => 'post',
                        'tax_query' => array(
                                array(
                                    'taxonomy'  => 'category',
                                    'field'     => 'term_id',
                                    'terms'     => $category -> term_id,
                                )
                            )
                    );

                    $query = new WP_Query( $args );

                    // Цикл
                    if ( $query->have_posts() ) : ?>
                        <div class="tabs-content blog-preview">
                            <div class="row tabs-content_blog-content">
                            <?php while ( $query->have_posts() ) : $query->the_post(); ?>
                                <div class="col-12">
                                    <div class="blog-card  blog-preview__item">
                                        <div class="blog-card__img irof">
                                            <?php the_post_thumbnail(); ?>
                                        </div>
                                        <div class="blog-card__body">
                                            <h3 class="text-h2 mb-20 blog-card__title"><?php the_title(); ?></h3>
                                            <div class="text-h4 mb-30 w-100"><?php the_date( 'd F Y' ); ?></div>
                                            <a href="<?php the_permalink(); ?>">
                                                <p class="blog-card__text"><?php echo get_excerpt(400); ?><a href="<?php the_permalink(); ?>" class="blog-card__link">read more</a></p>
                                            </a>
                                        </div>
                                    </div>
                                </div>
                                <!-- col-->
                            </div>
                            <?php endwhile; ?>
                            <?php if (  $query->max_num_pages > 1 ) : ?>
                                <script>
                                    var ajaxurl = '<?php echo site_url() ?>/wp-admin/admin-ajax.php';
                                </script>

                                <div class="row page-location-content__btn justify-content-center">
                                    <button type="button" data-true_posts='<?php echo serialize($query->query_vars); ?>'
                                        data-current_page = '<?php echo (get_query_var('paged')) ? get_query_var('paged') : 1; ?>'
                                        data-max_pages='<?php echo $query->max_num_pages; ?>' class="loadmore_blog button">Show more</button>
                                </div>
                            <?php endif; ?>
                        </div>
                    <?php endif; ?>
                    <?php wp_reset_query(); ?>
                    <?php endforeach; ?>

Код в файле functions.php:

function blog_load_posts(){
        $args = unserialize( stripslashes( $_POST['query'] ) );
        $args['paged'] = $_POST['page'] + 1; // we need next page to be loaded
        $args['post_status'] = 'publish';
        $args['post_type'] = 'post';
        $args['posts_per_page'] = 1; // по сколько записей подгружать
        $args['tax_query'] = array( array( 'taxonomy'  => 'category', 'field'     => 'term_id', 'terms'     => $args['cat']));

        // обычно лучше использовать WP_Query, но не здесь
        query_posts( $args );
        // если посты есть
        if( have_posts() ) : while( have_posts() ): the_post();

            echo '
                <div class="col-12">
                    <div class="blog-card  blog-preview__item">
                        <div class="blog-card__img irof">
                            '. get_the_post_thumbnail() .'
                        </div>
                        <div class="blog-card__body">
                            <h3 class="text-h2 mb-20 blog-card__title">'. get_the_title() .'</h3>
                            <div class="text-h4 mb-30 w-100">'. get_the_date( 'd F Y' ) .'</div>
                            <a href="'. get_the_permalink() .'">
                                <p class="blog-card__text">'. get_excerpt(400) .'<a href="'. get_the_permalink() .'" class="blog-card__link">read more</a></p>
                            </a>
                        </div>
                    </div>
                </div>
            ';

        endwhile; endif;
        die();
    }


    add_action('wp_ajax_loadmoreblog', 'blog_load_posts');
    add_action('wp_ajax_nopriv_loadmoreblog', 'blog_load_posts');

Код в js файле:

$('.loadmore_blog').click(function () {

        var el = $(this);
        var true_posts = el.attr('data-true_posts');
        var current_page = el.attr('data-current_page');
        var max_pages = el.attr('data-max_pages');

        $(this).text('Loading...'); // изменяем текст кнопки, вы также можете добавить прелоадер

        var $dataTarget = $(this).closest('.tabs-content').find('.tabs-content_blog-content');

        var data = {
            'action': 'loadmoreblog',
            'query': true_posts,
            'page': current_page
        };

        $.ajax({
            url: ajaxurl, // обработчик
            data: data, // данные
            type: 'POST', // тип запроса
            success: function (data) {
                if (data) {
                    el.text('Show more'); // вставляем новые посты
                    current_page++; // увеличиваем номер страницы на единицу
                    el.attr('data-current_page', current_page);
                    if (current_page == max_pages) el.remove(); // если последняя страница, удаляем кнопку
                    $dataTarget.append(data);
                } else {
                    el.remove(); // если мы дошли до последней страницы постов, скроем кнопку
                }
            }
        });
    });

Ответы (0 шт):