Czasem wystarczy dodać
echo paginate_links( );
W innych przypadkach:
$paged = ( get_query_var( 'paged' ) ) ? absint( get_query_var( 'paged' ) ) : 1; $projects = new WP_Query(array( 'post_type' => 'post', 'posts_per_page' => 12, 'paged' => $paged, ));
UWAGA: jeżeli query jest na statycznej stronie głównej, to pobieramy zmienną „page” a nie „paged”.
następnie do wyświetlenia paginacji używamy takiego kodu:
$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' => $rows->max_num_pages,
'prev_text' => __( '«', 'textdomain' ),
'next_text' => __( '»', 'textdomain' ),
) );
Linki paginacji przekierowują na pierwszą stronę
Nie wiem, skąd ten błąd. Po prostu nagle ucina /page/2/ i przekierowuje na główną. Znalazłem rozwiązanie, ale podobno może mieć to dziwne konsekwencje z przekierowaniami. Trzeba umieścić to w functions.php
add_filter('redirect_canonical','pif_disable_redirect_canonical');
function pif_disable_redirect_canonical($redirect_url) {
if (is_singular()) $redirect_url = false;
return $redirect_url;
}
Nowy wordpress
<?php
$paged = ( get_query_var( 'paged' ) ) ? absint( get_query_var( 'paged' ) ) : 1;
global $wp_query;
$news = new WP_Query(array(
'post_type' => 'post',
'posts_per_page' => 1,
'paged' => $paged,
));
?>
<?php
$wp_query->max_num_pages = $news->max_num_pages;
?>
<div class="pagination">
<?php
$args = wp_parse_args(
$args,
array(
'mid_size' => 1,
'prev_text' => _x( '<', 'previous set of posts' ),
'next_text' => _x( '>', 'next set of posts' ),
'aria_label' => __( 'Posts' ),
)
);
$links = paginate_links( $args );
echo $links;
// echo get_the_posts_pagination();
?>
</div>