Функция get_post срабатывает несколько раз

На сайте услуги выведены через записи. В фронтенде выведены категории в табах с ajax подгрузкой постов https://i.imgur.com/fFV4NZP.png. При первой загрузке все работает как надо, но если мы кликаем на второй таб и возвращаемся к первому, код срабатывает повторно и получается каша https://i.imgur.com/sRK7pMK.png

Мой код для вывода:

<?php
    $args = array(
        'type' => 'post',
        'parent' => 0,
        'orderby' => 'id',
        'order' => 'ASC',
        'hide_empty' => 0,
        'hierarchical' => true,
        'taxonomy' => array( 'category-services'),
        'pad_counts' => false,
    );
    $categories = get_categories($args);
    $count = 1;
    if( $categories ) { ?>
        <!--category-filter-->
        <div class="category-filter">
            <div class="category-filter_content">
                <?php foreach ($categories as $cat) { ?>
                    <a href="#" data-filter="<?php echo $cat->term_id; ?>" class="btn <?php if($count===1){ echo ' active'; }?>"><?php echo $cat->name; ?></a>
                    <?php $count++; } ?>
            </div>
        </div>
        <div class="filtered-content box">
            <?php $cat_this_id=$categories[0]->term_id;
            $posts = get_posts( array(
                'numberposts'     => 4, // тоже самое что posts_per_page
                'post_type'       => array('services'),
                'tax_query' => array(
                    array(
                        'taxonomy' => 'category-services',
                        'field' => 'term_id',
                        'terms' => $cat_this_id,
                    )
                )
            ) );
            if($posts) { ?>
                <?php
                foreach ($posts as $post) {
                    setup_postdata($post);
                    get_template_part( 'template/content-services' );
                }
                wp_reset_postdata();?>
            <?php } ?>
        </div>
    <?php } ?>

В чём может быть проблема? Как заставить код срабатывать только 1 раз?


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

Автор решения: Шемединов Сергей

Всем спасибо за помощь :)
Проблема была в строчке

<a href="#" data-filter="<?php echo $cat->term_id; ?>" class="btn <?php if($count===1){ echo ' active'; }?>"><?php echo $cat->name; ?></a>

Неправильно срабатывал фильтр, как решение поставил сторонний фильтр, не придумывая велосипед.

→ Ссылка