Пагинация на странице с выводом таксономий
Есть страница со слагом compare, есть шаблон для этой страницы page-compare.php, в шаблоне выводятся элементы таксономии для произвольного типа записи (категории) с пагинацией, но при переходе на страницы пагинации (/page/2,3...) выводится что страница не найдена. Код вывода ниже. Скажите, пожалуйста, что не так с выводом и пагинацией? В интернете готового шаблона вывода элементов таксономии с пагинацией не нашел.
$terms = get_terms( array(
'taxonomy' => array( 'compare', )
) );
if ( $terms ) {
$terms_per_page = 10;
$current = (int) get_query_var( 'paged' ) ? (int) get_query_var( 'paged' ) : 1;
global $wp_rewrite;
$pagination_args = array(
'base' => add_query_arg( 'paged', '%#%' ),
'format' => '',
'total' => ceil( count( $terms ) / $terms_per_page ),
'current' => $current,
'show_all' => false,
'type' => 'plain',
'prev_next' => true,
'prev_text' => __( '«' ),
'next_text' => __( '»' )
);
if ( $wp_rewrite->using_permalinks() ) {
$pagination_args[ 'base' ] = user_trailingslashit( trailingslashit( remove_query_arg( 's', get_pagenum_link( 1 ) ) ) . 'page/%#%/', 'paged' );
}
if ( ! empty( $wp_query->query_vars[ 's' ] ) ) {
$pagination_args[ 'add_args' ] = array( 's' => get_query_var( 's' ) );
}
$start = ( $current - 1 ) * $terms_per_page;
$end = ( count( $terms ) < $start + $terms_per_page ) ? count( $terms ) : $start + $terms_per_page;
$str = '';
for ( $i = $start; $i < $end; ++ $i ) {
$term = $terms[ $i ];
if ( $i > 0 ) {
echo '<hr class="post-separator styled-separator is-style-wide section-inner" aria-hidden="true" />';
}
?>
<article class="compares status-publish hentry">
<header class="entry-header has-text-align-center">
<div class="entry-header-inner section-inner medium">
<h2 class="entry-title heading-size-1"><a href="<?=get_term_link( $term->term_id, 'compare' )?>"><?=compare_name($term->name)?></a></h2>
<div class="post-meta-wrapper post-meta-single post-meta-single-top">
</div><!-- .entry-header-inner -->
</header><!-- .entry-header -->
</article>
<?php
}
printf( '<ul>%s</ul><nav class="navigation pagination"><div class="nav-links">%s</div></div>',
$str,
paginate_links( $pagination_args )
);
}