Pagination resolving to first page only

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('&laquo; Previous') ?></div>

            <div ><?php next_posts_link('Next &raquo;') ?></div>
            </div>
            <?php endif;



            ?>

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

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:

global $query_string;
parse_str( $query_string, $my_query_array );
$paged = ( isset( $my_query_array['paged'] ) && !empty( $my_query_array['paged'] ) ) ? $my_query_array['paged'] : 1;
query_posts('post_type=post&posts_per_page=3&paged='.$paged);

Method 2

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.

Method 3

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.

Method 4

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.


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x