I have a weird problem I'm having hard time understanding.
Pagination gives me error 404 when I click page #3 when there is only 1 post on that page. If I add 1 more so that on page #3 there are minimum 2 posts error goes away!
Any way to diagnose this issue?
My code is this:
//default values
if ( !isset ($_POST['lolpp']) ) { $listing_order_logic_perpage = 'date'; }
if ( !isset ($_POST['lopp']) ) { $listing_order_perpage = 'DESC'; }
if ( !isset ($_POST['lpp']) ) { $listing_per_page = 6; }
?>
<!-- End #catlistfilter --></div>
<ul class="infoslide">
<?php
//calculating offset depending on number of featured listing, lets create variable first
$count_featured_offset = 0;
//featured listing loop
query_posts( 'order=DESC&orderby=date&posts_per_page=2&post_type=post&cat='.$current_category_id.'&meta_key=featured&meta_value=yes' );
if ( have_posts() ) : while ( have_posts() ) : the_post();
//lets save ID of listing which is featured to later exclude it from normal loop
$do_not_duplicate[] = $post->ID;
?>
<li class="featuredinfoslide">
<div class="sponsoredTag"></div>
<a href="<?php the_permalink(); ?>">
<?php
if ( has_post_thumbnail() ) {
echo get_the_post_thumbnail($post->ID, 'thumbnail', array('alt' => the_title('','',false), 'title' => get_the_excerpt(), 'class' => 'primarythumb' ));
} else {
echo '<img width="120" height="68" class="primarythumb" alt="'.the_title("","",false).'" title="'.get_the_excerpt().'" src="'.get_bloginfo('template_url').'/thumbs/post-thumb-na.png">';
} ?>
</a>
<h3><a class="title" href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
<?php
echo "<p>".__(get_post_meta($post->ID, 'Address', true))."</p>";
echo '<span class="telephonebtn">'.get_post_meta($post->ID, 'Phone', true).'</span>';
$link = get_post_meta($post->ID, 'url', true);
if ( $link ) {
echo '<span class="wwwbtn wwwon"><a href="'.$link.'" target="_blank">'.__('Official Website','holidayge').'</a></span>';
} else {
echo '<span class="wwwbtn wwwoff"><a href="#">'.__('Official Website','holidayge').'</a></span>';
}
?>
<p class="infoslidedescrpt"><?php echo trim(strip_tags($post->post_excerpt)); ?></p>
<ul class="reviewsdetail">
<li class="reviewsrightborder">
<?php echo ( wp_gdsr_rating_article()->votes ); ?> <?php _e('users rated','holidayge'); ?>
<div><?php if(function_exists('wp_gdsr_render_article')){ wp_gdsr_render_article();}?></div>
</li>
<li class="reviewsleftborder">
<?php _e('Number of reviews','holidayge'); ?>
<span><a href="<?php echo get_permalink();?>#comments"><?php comments_number( '0', '1', '%' ); ?></a></span>
</li>
</ul>
<div class="clearfloat"></div><!-- Very Important -->
</li>
<?php
//increment featured count offset variable
$count_featured_offset++;
endwhile;
endif;
?>
<?php wp_reset_query(); ?>
<?php
//here we calculate correct offset depending on number of featured listings 2 1 0
$listing_per_page = $listing_per_page - $count_featured_offset;
//count to insert ads after nth post, 5th place in this example
$adspostnum = 1;
$adsshowpos = 1;
//normal listing loop
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
query_posts( array( 'order' => $listing_order_perpage, 'orderby' => $listing_order_logic_perpage, 'posts_per_page' => $listing_per_page, 'post_type' => 'post', 'cat' => $current_category_id, 'post__not_in' => $do_not_duplicate, 'paged' => $paged ) );
if ( have_posts() ) : while ( have_posts() ) : the_post();
?>
<li>
<a href="<?php the_permalink(); ?>">
<?php
if ( has_post_thumbnail() ) {
echo get_the_post_thumbnail($post->ID, 'thumbnail', array('alt' => the_title('','',false), 'title' => get_the_excerpt(), 'class' => 'primarythumb' ));
} else {
echo '<img width="120" height="68" class="primarythumb" alt="'.the_title("","",false).'" title="'.get_the_excerpt().'" src="'.get_bloginfo('template_url').'/thumbs/post-thumb-na.png">';
} ?>
</a>
<h3><a class="title" href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
<?php
echo "<p>".__(get_post_meta($post->ID, 'Address', true))."</p>";
echo '<span class="telephonebtn">'.get_post_meta($post->ID, 'Phone', true).'</span>';
$link = get_post_meta($post->ID, 'url', true);
if ( $link ) {
echo '<span class="wwwbtn wwwon"><a href="'.$link.'" target="_blank">'.__('Official Website','holidayge').'</a></span>';
} else {
echo '<span class="wwwbtn wwwoff"><a href="#">'.__('Official Website','holidayge').'</a></span>';
}
?>
<p class="infoslidedescrpt"><?php echo trim(strip_tags($post->post_excerpt)); ?></p>
<ul class="reviewsdetail">
<li class="reviewsrightborder">
<?php echo ( wp_gdsr_rating_article()->votes ); ?> <?php _e('users rated','holidayge'); ?>
<div><?php if(function_exists('wp_gdsr_render_article')){ wp_gdsr_render_article();}?></div>
</li>
<li class="reviewsleftborder">
<?php _e('Number of reviews','holidayge'); ?>
<span><a href="<?php echo get_permalink();?>#comments"><?php comments_number( '0', '1', '%' ); ?></a></span>
</li>
</ul>
<div class="clearfloat"></div><!-- Very Important -->
</li>
<?php
//in betweeen listing advertising goes here
if ( $adspostnum == $adsshowpos ) {
?>
<li>
<div id="sideleftads">
<?php //echo adrotate_block(2); ?>
<a href="<?php echo get_permalink( 11 ); ?>"><?php echo get_the_title( 11 ); ?></a>
<!-- End #sideleftads --></div>
</li>
<?php } $adspostnum++;
endwhile;
endif;
?>
<!-- End .infoslide --></ul>
<div class="catlistpagination">
<?php wp_pagenavi(); ?>
</div>
query_postsin the template. create additional queries withWP_Query. Modify the main query via thepre_get_postsaction. – Milo Oct 8 '12 at 16:09