0

I'm using HTML5Blank theme to edit my own theme on clean basis, and trying to set the pagination but it's not displaying for some reason, and I cant find out why.

Index.php calls loop then pagination templates

<section>
    <?php get_template_part('loop'); ?>

    <?php get_template_part('pagination'); ?>
</section>

Pagination.php calls pagination function

<div class="pagination">
    <?php html5wp_pagination(); ?>
</div>

The function is

// Pagination for paged posts, Page 1, Page 2, Page 3, with Next and  Previous Links, No plugin
function html5wp_pagination()
{
global $wp_query;
$big = 999999999;
echo paginate_links(array(
    'base' => str_replace($big, '%#%', get_pagenum_link($big)),
    'format' => '?paged=%#%',
    'current' => max(1, get_query_var('paged')),
    'total' => $wp_query->max_num_pages
));
}

I haven't touched anything related to the pagination, and I can see that the <div class="pagination"> is called in the HTML using Chrome console, but is not displaying anything.

I thought this could be because I had not enough post to display the pagination, but I tried to add a lot of posts, and it's still not showing.

Any idea of what is the problem ?

  • Are you sure you have more posts than the "Blog pages show at most" setting under Settings > Reading? – TheDeadMedic Nov 10 '15 at 11:46
  • Do echo $wp_query->max_num_pages; in your template and check what it returns – Pieter Goosen Nov 10 '15 at 12:07
-1

You need to add your query variable to the global used on the function, in that case "$wp_query", just like that:

<?php
  $yourQuery_args = ['posts_per_page' => '7',];
  $yourQuery = new WP_Query( $yourQuery_args );

  $wp_query = $yourQuery;
  get_template_part('pagination'); 
?>

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.