WordPress.org

Ready to get started?Download WordPress

Forums

Paginate list of posts from static home page showing single post? (3 posts)

  1. Opally
    Member
    Posted 4 years ago #

    I've got a static home page template that shows that page's contents. Below it, it has another query to show the most recent post. I'm using next_posts_link to link to more recent posts. Website is http://www.pugix.com

    The problem is that on the paginated results, the same query is run for each page, so it never goes deeper. I'm only showing one post on the homepage, so the remaining posts that would have been paginated on that page are lost unless I use an offset to recover the missing posts. But I don't have the right way of doing it. Basically, the new query runs on page 2, but then runs again on every page thereafter because I'm using the conditional is_front_page().

    if (!is_front_page()) {
         query_posts('offset=1');
    }
    if (have_posts()) : while (have_posts()) : the_post();

    How to solve this?

    If I could generate the query only on page 2, that would work, but I don't see how to do that. If I don't use an offset, I do get correct pagination BUT I lose the rest of the first page results which didn't get to display on page 1, the homepage.

    Thanks in advance for suggestions!

    --Diana

  2. Opally
    Member
    Posted 4 years ago #

    I've been trying to come up with a solution for this. I thought perhaps I could set up a new page with it's own template and a new query showing the list of posts, but next_posts_link() pagination wouldn't appear. I surmise from documentation that those pagination links are only intended to work on the main posts query page.

    I noticed on admin > settings > reading that there is also an option to choose a page on which posts will appear, so I selected my new layout page.

    However, it doesn't work that way, only the home page template is referenced.

    So, now I've got a "more recent posts" link on the homepage, but each page of results keeps initiating the query instead of paginating the original offset query.

    $my_query = new WP_Query('offset=1');
     while ($my_query->have_posts()) : $my_query->the_post();
     $do_not_duplicate[] = $post->ID;

    If I don't do the offset, I lose the remaining first page of posts that would have shown if I hadn't used the

    if (is_front_page()):
    	      query_posts('showposts=1');

    I have to run two query loops in my home page template: the loop that shows the static page, and a second loop that shows the most recent post.

    There are conditionals that control what displays on the posts pages that follow, which use the first loop.

    You can see the problem here: http://www.pugix.com

    thanks for any guidance!

  3. Opally
    Member
    Posted 4 years ago #

    ah, I found the answer to this in the codex!

    http://codex.wordpress.org/Making_Your_Blog_Appear_in_a_Non-Root_Folder

    This is how you can make a paginated list of posts appear in a non-root URL. Yay!!

    Hope this helps someone else some day.

Topic Closed

This topic has been closed to new replies.

About this Topic