Clients have been asking for custom amount of posts per page in certain categories. To do this, I have to create a new category template in the theme. For the ‘testimonials’ category, I created a file in my theme directory named
category-testimonials.php. The following code is meat of this page’s content:
<?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; query_posts( array_merge( $wp_query->query, array( 'paged' => $paged, 'cat' => 5, 'posts_per_page' => 10 ) ) ); ?> <?if ( have_posts() ) : while ( have_posts() ) : the_post();?> <?the_content();?> <?endwhile; endif;?> <?php wp_reset_query(); ?>
$paged checks to see if the category has more than one page, otherwise it defaults to 1 page. From there, we build the query_posts() options array.
paged– How many pages the results will be broken into
cat– Which category I want displayed. In my case, category of if ‘5’.
posts_per_page– How many pages I want displayed per page. Every other category is set to 5 posts per page, but I want this one to be 10.
The rest of the loop is unchanged. There you have it, a category template displaying a custom amount of posts per page with pagination.