Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

I use the Reverie theme as a framework for my sites and I'm having an issue with using a function to create variable posts per page plus having the arrows for the paging to work. I used the variable function to fix a 404 error I was getting when I paged to the last page of a category. The numbers work fine, goes to each page as they should be if I try and use the previous/next arrows, though they are linked, nothing happens. (I currently have the prev_next set to false since they aren't working and it's a live site).

The code from the Reverie theme for pagination:

function reverie_pagination() {
global $wp_query;

$big = 999999999; // This needs to be an unlikely integer

// For more options and info view the docs for paginate_links()
// http://codex.wordpress.org/Function_Reference/paginate_links
$paginate_links = paginate_links( array(
    'base' => str_replace( $big, '%#%', get_pagenum_link($big) ),
    'current' => max( 1, get_query_var('paged') ),
    'total' => $wp_query->max_num_pages,
    'mid_size' => 5,
    'prev_next' => False,
    'prev_text' => __('«'),
    'next_text' => __('»'),
    'type' => 'list'
) );

// Display the pagination if more than one page is found
if ( $paginate_links ) {
    echo '<div class="reverie-pagination">';
    echo $paginate_links;
    echo '</div><!--// end .pagination -->';
}
}

And the code I'm using to limit/change posts per page:

function limit_posts_per_page() {
if ( is_category() )
    return 12;
else
    return 13; // default: 13 posts per page
}

add_filter('pre_option_posts_per_page', 'limit_posts_per_page');

And the code from my category-loop template:

<?php
// Let's retrieve 10 posts per page and ensure that paginating works
$page = get_query_var('paged');
$cat = get_category($cat);
query_posts('cat='. $cat->cat_ID.'&paged='. $page); 
?>

<?php while (have_posts()) : the_post(); ?>

// loop stuff
<?php endwhile; // End the loop ?>

<?php /* Display navigation to next/previous pages when applicable */ ?>
<?php if ( function_exists('reverie_pagination') ) { reverie_pagination(); } else if ( is_paged() ) { ?>
<nav id="post-nav">
<div class="post-previous"><?php next_posts_link( __( '&larr; Older posts', 'reverie' ) ); ?></div>
<div class="post-next"><?php previous_posts_link( __( 'Newer posts &rarr;', 'reverie' ) ); ?></div>
</nav>
<?php } ?>

I guess I don't understand why the function that limits posts_per_page would be "breaking" the prev/next arrows? Any help or being pointed in the correct direction would be appreciated. The arrows were working before I added this function (except for the 404 error I mentioned on the last page).

share|improve this question
add comment

Know someone who can answer? Share a link to this question via email, Google+, Twitter, or Facebook.

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.