Решение -1 (Архивные страницы)
Первая выборка текущей страницы для передачи в аргументах Wp_Query.
// current page
$paged = get_query_var( 'paged' ) ? get_query_var( 'paged' ) : 1;
// prepare arguments
$args = array( 'post_type' => 'product',
'stock' => 1,
'product_cat' => 'earrings-ring',
'posts_per_page' => '12',
'order' => 'DESC',
'paged' => $paged
);
//prepare query
new WP_Query( $args );
Вы должны вызвать функцию разбиения на страницы WordPress перед wp_reset_postdata ()
the_posts_pagination( array(
'prev_text' => '<span class="fa fa-angle-left" aria-hidden="true"></span>',
'next_text' => '<span class="fa fa-angle-right" aria-hidden="true"></span>',
'screen_reader_text' => ' ',
'before_page_number' => '',
'mid_size' => 3,
) );
Решение -2 (пользовательские шаблоны)
Создание запроса Wp
// prepare arguments
$args = array( 'post_type' => 'product',
'stock' => 1,
'product_cat' => 'earrings-ring',
'posts_per_page' => '12',
'order' => 'DESC',
'paged' => $paged
);
//prepare query
$query = new WP_Query( $args );
$totalPage=$query->max_num_pages;
Функция разбиения на страницы вызова
$big = 999999999; // need an unlikely integer
echo paginate_links( array(
'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
'format' => '?paged=%#%',
'current' => max( 1, get_query_var('paged') ),
'total' => $totalPage
) );
Это решение работает для пользовательских шаблонов страниц,Вы можете проверить документацию WordPress .