Без контекста сложно понять, что вы пытаетесь сделать. Аргумент
showposts
давно устарел, а
query_posts()
вообще использовать нельзя. Предположу, что
the_posts_pagination()
, берет данные из основного цикла, а не из вашего
Вот рабочий пример для вывода пагинации для кастомного запроса:
// получаем номер страницы пагинации
$current = absint( max( 1, get_query_var( 'paged' ) ? get_query_var( 'paged' ) : get_query_var( 'page' ) ) );
// собираем запрос
$args = array(
'post_type' => 'page',
'posts_per_page' => 10,
'paged' => $current,
);
$my_query = new WP_Query( $args );
if ( $my_query->have_posts() ) {
// основной цикл
while ( $my_query->have_posts() ) {
$my_query->the_post();
//вёрстка
}
wp_reset_postdata(); // возвращаем глобальный цикл
// выводим пагинацию
echo wp_kses_post(
paginate_links(
[
'total' => $my_query->max_num_pages, // количество берем из дефолтной опции запроса
'current' => $current, // текущая страница
]
)
);
} else {
// выводим шаблон "нет контента", если в запросе нет постов
get_template_part( 'templates/content', 'none' );
}
Если наткнетесь на проблемы с редиректами или 404 при пагинации, читайте
тут.