I’ve done some searches here and on Google but everything I’m finding isn’t working correctly. I was hoping to post my code here and get help with where I’m going wrong.
On the index page of my site, I have one “featured” post that has a different layout than the rest of the posts. When you click to the next page, that featured post goes away and leaves me with an uneven count of posts and I need an even post count. Here’s the code I found and have tried implementing with no joy.
I’m using the following query (everything else is the same at the count code and below):
<?php
$page = (get_query_var('paged')) ? get_query_var('paged') : 1;
query_posts("paged=$page&posts_per_page=10");
?>
This is the code I want to be able to use:
<?php
$page = (get_query_var('paged')) ? get_query_var('paged') : 1;
$page_num = $paged;
if ($pagenum='') $pagenum = 1;
if ($pagenum > 1) { $post_num = 10 } else { $post_num = 9 }
query_posts('showposts=".$post_num."&paged='.$page_num); `
?>
This would be the same for the rest of the page:
<?php $count = 1; ?>
<?php while (have_posts()) : the_post(); ?>
<?php if ((!is_paged()) && ($count == 1 )){ ?>
// FEATURED HTML HERE
<?php } else { ?>
// REGULAR HTML HERE
<?php } $count++; ?>
<?php endwhile; ?>
// PAGINATION HERE
2 Answers
You should use the pre_get_posts
filter. You can exclude the homepage with ! is_front_page
or ! is_home
depending on your configuration.
/**
* Changes the number of posts per page if not is_home
*
* @author SFNdesign, Curtis McHale
*/
function wptt_change_posts_on_page( $query ) {
if ( ! is_home() && $query->is_main_query() ) {
$query->set( 'posts_per_page', '10' );
}
}
add_action( 'pre_get_posts', 'wptt_change_posts_on_page' );
As I said, you may need to use ! is_front_page
depending on how your theme is set up. Here is a good blog post explaining more on those conditionals.
http://wpthemetutorial.com/2011/12/12/clearing-up-confusion-about-is_home-and-is_front_page/
Oh and never use query_posts
, evar.
https://developer.wordpress.com/2012/05/14/querying-posts-without-query_posts/