I have a custom page template on my site, with a WP_Query pulling in a list of posts. I'd like to implement pagination but just can't seem to get it right. Here's the code I'm using blelow, which pulls in the most recent 2 posts fine, but then doesn't display the 'next' or 'previous' links as you might expect.

For clarity, I have a total of 5 posts that meet the criteria in the query and this template is being used as the front page of my blog. Also, the inc-post-listing.php simply pulls in certain info from each post, like the thumbnail, title and permalink.

I'm sure I'm missing something obvious so any help is very much appreciated.

        $paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1;
        // WP_Query arguments
        $args = array (
            'post_type'              => 'post',
            'post_status'            => 'publish',
            'posts_per_page'         => '2',
            'paged'                  => $paged

        // The Query
        $posts = new WP_Query( $args );

        // The Loop
        if ( $posts->have_posts() ) {
            while ( $posts->have_posts() ) {
        } else {
            // no posts found

        // Restore original Post Data

    <div><?php posts_nav_link(' ','Previous Page','Next Page'); ?></div>
    <div><?php posts_nav_link(' ','Go Back','Show More Tips'); ?></div>
  • 2
    There is no 'pagination' parameter for WP_Query. Please, see the Codex for the correct pagination parameters. Algo, this question and its answers may be helpful for you.
    – cybmeta
    Commented May 19, 2014 at 11:27
  • Ah ok, that was provided b a WP_Query generator script, I should let them know it doesn't exist. Thanks for the link I have tried updating my code (added back into my OP), but it's still not working. The next/previous links just don't show up... Am I getting closer?
    – Kev
    Commented May 19, 2014 at 12:44
  • The next previous links are outside the query, so there's no logical reason they should have anything to do with it
    – Tom J Nowell
    Commented May 19, 2014 at 12:45
  • Also is the whole point of this query just to change the number of posts shown to 2?
    – Tom J Nowell
    Commented May 19, 2014 at 12:46
  • That makes sense - I've tried moving them to sit just before the reset_postdata, but that didn't seem to help... Nah I'm using the query on a page template that would otherwise only display the content of the specific page.
    – Kev
    Commented May 19, 2014 at 12:51


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.