My pagination is only linking to the same posts that are on my front page.
I have 3 posts on my front page, when I press next it goes to /page/2 but only shows the same 3 posts, with no previous button. The next button is still there, but still goes to page/1
Here is the full query.
<?php
query_posts('post_type=post&posts_per_page=3');
if ( have_posts() ) : while ( have_posts() ) : the_post();
$category = choose_one_category(get_the_category());
switch ($category){
case "Festival News":
$left[] = $post;
break;
case "Industry News":
$centre[] = $post;
break;
case "Other":
$right[] = $post;
break;
}
endwhile;
?>
<div class="custom-pagination">
<div ><?php previous_posts_link('« Previous') ?></div>
<div ><?php next_posts_link('Next »') ?></div>
</div>
<?php endif;
?>
Building off of what Rarst has said, I’m pretty sure the query string will retain ‘paged’ queries even if
WP_Query
strips it out as irrelevant. You could try replacing your query posts line with this:Pagination functions are meant to be used with main Loop. They are relying on global variables
$paged
and$wp_query
, which are not set by your custom loop.If you stumble upon this one, try the following: “Easy Pagination Deamon“. Install, activate, use the template tag inside your template…
The link to the stylesheet can be found inside my gists or below the top plugin comment.
Is this on your home page? I had this problem as well and as a workaround, I simply made the link on the first page point to http://www.yoursite.com/category/page/2/ so it skips the first set of values for page one. From there on, the pagination links worked correctly. Here is an example.