Как исправить пагинацию wocommerce?

Есть код вывода товаров, сделал по ответу одного из учасников, например по 2 товара на странице, далее я хочу сделать пагинацию, но пагинация не срабатывает, сам код появляется и видно 1 2 3 Далее, но при нажатии просто на главную бросает, как это можно исправить, подскажите пожалуйста.

global $post, $wp_query;

$query_args = array(
    'post_type' => 'product',  // указываем, что выводить нужно именно товары
    'posts_per_page' => 2, // количество товаров для отображения
    'orderby' => 'date', // тип сортировки (в данном случае по дате)
    'product_cat' => $sort,
);

$query = new WP_Query( $query_args );

if ( $query->have_posts() ) {
    while ( $query->have_posts() ) {
        $query->the_post();
        ?>
                    <div class="product-main">
                <div class="product-img"> <a href="<?php echo get_permalink(); ?>" class="avatar"><img class="responsive-img" src="<?php
                $thumb_id = get_post_thumbnail_id();
                $thumb_url = wp_get_attachment_image_src($thumb_id,'thumbnail-size', true);
                echo $thumb_url[0];
                ?>" alt=""></a>

                </div>
                <div class="product-title"><a href="<?php echo get_permalink(); ?>"><?php the_title(); ?></a></div>
                <div class="product-id"><?php echo $product->get_id() ?></div>
                <div class="product-size">Размер: <?php echo $product->get_attribute('size'); ?> см.</div>
                <div class="product-price__box">
                    <div class="product-price">Цена: <?php echo $product->get_price_html(); ?> грн.</div>
                </div>
                <div class="product-art">Артикул: <?php echo $product->get_sku(); ?></div>
                <div class="product-button">
                    <button class="fast-buy-green"><a onclick="tobasket(<?php echo $product->get_id();?>)">В корзину</a></button>
                    <button class="fast-buy">Быстрая покупка</button>
                </div>
            </div>
            <?php
    }

    wp_reset_postdata();

    $temp_query = $wp_query;
    $wp_query   = null;
    $wp_query   = $query;

    the_posts_pagination();

    $wp_query = null;
    $wp_query = $temp_query;
};?>

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

Автор решения: WP Punk

Используйте paginate_links вместо the_posts_pagination. the_posts_pagination работает только на главный цикл wordpress. А у вас в примере кастомный WP_Query.

global $paged;
$paged = max( $paged, 1 );
$per_page = 10;
$total = ceil( $query->found_posts / $paged );
$args = array(
    'total'        => 1,
    'current'      => $paged,
); 

echo paginate_links( $args );
→ Ссылка