1

I'm trying to add pagination to my WordPress query using pagination_links() however I am getting no links returned for my page 1 links and previous link? Other links are adding the paged query string to the URL which then redirect you to /page/3/ for example. Unsure whether I need to update the query below to add these URL's instead of the query string?

Can anyone see what is wrong with the below and how I can get the pagination links to be correct?

Any advice and help would be appreciated.

Query & Pagination:

$posts_per_page = get_option('posts_per_page');
$paged = ( get_query_var( 'paged' ) ) ? absint( get_query_var( 'paged' ) ) : 1;

$args = array(
    'posts_per_page' => $posts_per_page,
    'post_type' => 'post',
    'paged' => $paged,
);

$articles = new WP_Query( $args ); 

$args = array(
    'base'               => '%_%',
    'format'             => '?paged=%#%',
    'current'            => max( 1, get_query_var('paged') ),
    'total'              => $wp_query->max_num_pages,
    'show_all'           => false,
    'end_size'           => 1,
    'mid_size'           => 1,
    'prev_next'          => true,
    'prev_text'          => '<span class="icon icon-arrow-left" aria-hidden="true"></span><span class="sr-only">Previous</span>',
    'next_text'          => '<span class="icon icon-arrow-right" aria-hidden="true"></span><span class="sr-only">Next</span>',
    'type'               => 'plain',
    'add_args'           => false,
    'add_fragment'       => '',
    'before_page_number' => '',
    'after_page_number'  => ''
);

echo paginate_links( $args );

Returned HTML:

<div class="pagination">
    <a class="prev page-numbers" href=""><span class="icon icon-arrow-left" aria-hidden="true"></span><span class="sr-only">Previous</span></a>
    <a class="page-numbers" href="">1</a>
    <span aria-current="page" class="page-numbers current">2</span>
    <a class="page-numbers" href="?paged=3">3</a>
    <a class="next page-numbers" href="?paged=3"><span class="icon icon-arrow-right" aria-hidden="true"></span><span class="sr-only">Next</span></a>            
</div>
0

I've updated the base in my $args which has resolved the issue.

'base' => preg_replace('/\?.*/', '/', get_pagenum_link()) . '%_%',

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.