Title: Recent posts loop
Last modified: August 19, 2016

---

# Recent posts loop

 *  [substitute](https://wordpress.org/support/users/substitute/)
 * (@substitute)
 * [16 years, 2 months ago](https://wordpress.org/support/topic/recent-posts-loop-1/)
 * Hi
 * For some reasons I can’t get my theme to display my latest posts correctly, so
   I figure I’d do a page with my latest posts.
    I found this code to create a loop
   to do so, but it returns an empty page. What else should I do apart from creating
   a new page template with that loop inside? Thanks
 *     ```
       <h3>Recent Articles</h3>
       <ul>
       <?php
           $recentPosts = new WP_Query();
           $recentPosts->query('showposts=5');
       ?>
       <?php while ($recentPosts->have_posts()) : $recentPosts->the_post(); ?>
           <li><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></li>
       <?php endwhile; ?>
       </ul>
       ```
   

Viewing 15 replies - 1 through 15 (of 16 total)

1 [2](https://wordpress.org/support/topic/recent-posts-loop-1/page/2/?output_format=md)
[→](https://wordpress.org/support/topic/recent-posts-loop-1/page/2/?output_format=md)

 *  [MichaelH](https://wordpress.org/support/users/michaelh/)
 * (@michaelh)
 * [16 years, 2 months ago](https://wordpress.org/support/topic/recent-posts-loop-1/#post-1338271)
 * That code looks okay–the fact you get a blank page may mean you aren’t pointing
   to the correct Page template, or you are putting the template in the wrong place.
 *  [Mark / t31os](https://wordpress.org/support/users/t31os_/)
 * (@t31os_)
 * [16 years, 2 months ago](https://wordpress.org/support/topic/recent-posts-loop-1/#post-1338284)
 * Does your page template have the “required” comments at the top which allows 
   you to attach it to a given page?.. or.. have you attached it to a page?..
 * NOTE: Use `posts_per_page` instead of `showposts`( which iirc is to be deprecated)
 *  Thread Starter [substitute](https://wordpress.org/support/users/substitute/)
 * (@substitute)
 * [16 years, 2 months ago](https://wordpress.org/support/topic/recent-posts-loop-1/#post-1338286)
 * Ok this is solved. But the page doesn’t look like the others.
 * I thought that what was in page.php was enough to make it look like the others,
   but nope. I am very naive I know 😉
 * So what do I need to add to that page to make it look like the others? I guess
   I must add the-exerpt, the category, …coming from index.php?
 *     ```
       <?php
       /*
       Template Name: Latest Posts
       */
       ?>
   
       <?php get_header(); ?>
   
       <div id="content">
       					<div class="contentbox"><span>Latest Posts</span><div class="clear"></div><div class="left"></div></div>
   
       <ul>
       <?php
           $recentPosts = new WP_Query();
           $recentPosts->query('showposts=10');
       ?>
       <?php while ($recentPosts->have_posts()) : $recentPosts->the_post(); ?>
       <div class="posts">
       									<h6 class="postheading" id="post-<?php the_ID(); ?>"><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></h6>
       									<?php the_excerpt(); ?>
       									<a href="<?php the_permalink() ?>" class="readmorelink">Read More</a>
       									<div class="postsmetadata">
       										Category : <?php the_category(', ') ?>.<br />
       										<?php the_tags( 'Tags: ', ', ', '.<br />'); ?>
       										<?php edit_post_link('Edit Post', '', ''); ?>
       									</div>
       								</div>
       <?php endwhile; ?>
       </ul>
   
       					<div class="contentbox" id="post-<?php the_ID(); ?>">
       						<div class="posts">
       							<h6 class="postheading"><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></h6>
       							<?php the_content('<p>Read the rest of this entry &raquo;</p>'); ?>
       							<?php wp_link_pages(array('before' => '<div class="postspagination">Pages: ', 'after' => '</div>', 'next_or_number' => 'number')); ?>
       							<?php edit_post_link('Edit this entry.', '<div class="postsmetadata">', '</div>'); ?>
       						</div>
       					</div>
   
       				</div>
       <?php get_sidebar('block'); ?>
       <?php get_sidebar('right'); ?>
       <?php get_sidebar('left'); ?>
       <?php get_footer(); ?>
       ```
   
 *  [Mark / t31os](https://wordpress.org/support/users/t31os_/)
 * (@t31os_)
 * [16 years, 2 months ago](https://wordpress.org/support/topic/recent-posts-loop-1/#post-1338291)
 * Copy the index.php (page.php, or single.php, whichever has the layout you want
   to match i guess), remove what’s not needed, and add the comments bit at the 
   top, update the query… save, done…
 * p.s. Unless there’s another query on the page already, there’s no reason you 
   can’t just use `query_posts()` instead of`new WP_Query` etc..
 *  Thread Starter [substitute](https://wordpress.org/support/users/substitute/)
 * (@substitute)
 * [16 years, 2 months ago](https://wordpress.org/support/topic/recent-posts-loop-1/#post-1338293)
 * Ok the page.php doesn’t have any layout obviously …
    [http://ace.dpwatch.com](http://ace.dpwatch.com)
   is the layout in the top navbar you have latest posts and you see what I got..
   no layout at all.
 * I guess everything is in the index.php but I couldn’t tell…
    My goal is simply
   to have my latest posts on one page which should be done in a sec with ANY theme
   but that one, which puts it in a weird and crazy layout…
 * Thanks
 *  [Mark / t31os](https://wordpress.org/support/users/t31os_/)
 * (@t31os_)
 * [16 years, 2 months ago](https://wordpress.org/support/topic/recent-posts-loop-1/#post-1338296)
 * index.php, single.php, page.php (theme files), are just like placeholders, then
   all have various blocks of code, each of them usually pulls in common data from
   the header and footer files to.
 * See the template hierarchy information here.
    [http://codex.wordpress.org/Template_Hierarchy](http://codex.wordpress.org/Template_Hierarchy)
   [http://codex.wordpress.org/images/1/18/Template_Hierarchy.png](http://codex.wordpress.org/images/1/18/Template_Hierarchy.png)
 * All i’ve suggested you do is use one of your existing theme files as a template
   or basis with which to build your page template from.
    [http://codex.wordpress.org/Stepping_Into_Templates](http://codex.wordpress.org/Stepping_Into_Templates)(
   not template in the sense of page templates, but theme files)
 * For additional “page template” examples and information, see here.
    [http://codex.wordpress.org/Pages#Page_Templates](http://codex.wordpress.org/Pages#Page_Templates)
 *  Thread Starter [substitute](https://wordpress.org/support/users/substitute/)
 * (@substitute)
 * [16 years, 2 months ago](https://wordpress.org/support/topic/recent-posts-loop-1/#post-1338299)
 * so I’ve duplicated the index.php and replaced
 *     ```
       <?php while (have_posts()) : the_post(); ?>
       ```
   
 * with
 *     ```
       <?php $my_query = new WP_Query('showposts=10');
   
       while ($my_query->have_posts()) : $my_query->the_post();
   
       $do_not_duplicate = $post->ID; ?>
       ```
   
 * And it doesn’t work so I may have to dig in further…I mean I’ve spent the whole
   day on this just to display my latest posts…this can’t be true ;-(
 *  [Mark / t31os](https://wordpress.org/support/users/t31os_/)
 * (@t31os_)
 * [16 years, 2 months ago](https://wordpress.org/support/topic/recent-posts-loop-1/#post-1338301)
 * The same rules apply as before, you still need to add the necessary comments 
   at the top of the file, else it’ll not be read as a “page template” file..
 * Ok let’s with something basic first then.. you can then add stuff as you go (
   it’ll be easier)..
 *     ```
       <?php
       /*
       Template Name: Example
       */
       ?>
       <?php get_header(); ?>
       <h2>Hello, this is my page template test.</h2>
       <?php get_footer(); ?>
       ```
   
 * You can still make changes to the file after it’s attached to a page, so don’t
   worry about repeating the attaching process each time (incase you were wondering).
 * Too much… too quick, don’t get ahead of yourself… 😉
 *  Thread Starter [substitute](https://wordpress.org/support/users/substitute/)
 * (@substitute)
 * [16 years, 2 months ago](https://wordpress.org/support/topic/recent-posts-loop-1/#post-1338306)
 * Oh I did put that :-)That’s my latest posts page
    and the result is…..this [http://ace.dpwatch.com/latest-posts](http://ace.dpwatch.com/latest-posts)
 *     ```
       <?php
       /*
       Template Name: Latest Posts
       */
       ?>
   
       <?php get_header(); ?>
       				<div id="content">
       					<div class="contentbox">
       						<?php if (have_posts()) : ?>
       							<div class="boxheading"><span>Latest Posts</span><div class="clear"></div><div class="left"></div></div>
       							<?php $my_query = new WP_Query('showposts=10');
   
       while ($my_query->have_posts()) : $my_query->the_post();
   
       $do_not_duplicate = $post->ID; ?>
   
       								<div class="posts">
       									<h6 class="postheading" id="post-<?php the_ID(); ?>"><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></h6>
       									<?php the_excerpt(); ?>
       									<a href="<?php the_permalink() ?>" class="readmorelink">Read More</a>
       									<div class="postsmetadata">
       										Category : <?php the_category(', ') ?>.<br />
       										<?php the_tags( 'Tags: ', ', ', '.<br />'); ?>
       										<?php edit_post_link('Edit Post', '', ''); ?>
       									</div>
       								</div>
       							<?php endwhile; ?>
       							<?php if (show_posts_nav()) : ?>
       								<div class="postsnav"><span class="left"><?php next_posts_link('&laquo; Older Entries') ?></span><span class="right"><?php previous_posts_link('Newer Entries &raquo;') ?></span><div class="clear"></div></div>
       							<?php endif; ?>
       						<?php else : ?>
       							<div class="boxheading"><span>Error : Not Found</span><div class="clear"></div><div class="left"></div></div>
       							<div class="posts">
       								<p>Sorry, but you are looking for something that isn't here.</p>
       								<?php get_search_form(); ?>
       							</div>
       						<?php endif; ?>
       					</div>
       				</div>
       <?php get_sidebar('block'); ?>
       <?php get_sidebar('right'); ?>
       <?php get_sidebar('left'); ?>
       <?php get_footer(); ?>
       ```
   
 *  [Mark / t31os](https://wordpress.org/support/users/t31os_/)
 * (@t31os_)
 * [16 years, 2 months ago](https://wordpress.org/support/topic/recent-posts-loop-1/#post-1338307)
 * Sorry, does that mean it’s now working (i see various posts), or is there still
   a problem?
 * You wasn’t clear in your reply.
 *  Thread Starter [substitute](https://wordpress.org/support/users/substitute/)
 * (@substitute)
 * [16 years, 2 months ago](https://wordpress.org/support/topic/recent-posts-loop-1/#post-1338308)
 * this is how it looks
 * [http://ace.dpwatch.com/latest-posts](http://ace.dpwatch.com/latest-posts)
 * this is how it should look, I mean how a page with posts should look
    [http://ace.dpwatch.com/](http://ace.dpwatch.com/)
 * so no no it’s not working at all 🙂 I get the posts but not the display…
 *  [Mark / t31os](https://wordpress.org/support/users/t31os_/)
 * (@t31os_)
 * [16 years, 2 months ago](https://wordpress.org/support/topic/recent-posts-loop-1/#post-1338310)
 * Ok, but the display is just a layout issue, the code works, it’s just not matching.
 * This is why i had you copy one of you existing files, in an attempt to mimic 
   the current layout (or close).. i’m assuming at this point you’ve had little 
   experience with HTML (if i’m wrong, you should be able to fix it by just looking–
   and adjusting).
 * Just about to jump in the shower, but i’ll take a look at your links when i get
   back, it’s proberly only a minor alteration, so if you’ve not sussed it by the
   time i’m back i’ll see if i can fix it for you.. (i don’t need a login to do 
   it, i’ll provide code)..
 * 😉
 *  Thread Starter [substitute](https://wordpress.org/support/users/substitute/)
 * (@substitute)
 * [16 years, 2 months ago](https://wordpress.org/support/topic/recent-posts-loop-1/#post-1338313)
 * oh that’d be a life savier..I am totally bad at those things..I can learn but
   this is not my thing frankly.
    It’s like trying to have a conversation in japanese
   using Google translate…I don’t totally understand what I am doing
 * Btw the link to your website in your profile doesn’t work, if you want to take
   care of my website, be my guest :-)!
    It’s a lot of fun, you’ll see 😉
 *  [Mark / t31os](https://wordpress.org/support/users/t31os_/)
 * (@t31os_)
 * [16 years, 2 months ago](https://wordpress.org/support/topic/recent-posts-loop-1/#post-1338341)
 * Ok, sorry for the delay…
 * It looks to me, like there’s some invalid tags introduced…
    [See here](http://validator.w3.org/check?uri=http%3A%2F%2Face.dpwatch.com%2Flatest-posts&charset=%28detect+automatically%29&doctype=Inline&group=0)
 * Looking at the template code (above), i see no immediate problem, no nesting 
   problem, perfectly valid code, so i have to assume the invalid markup exists 
   either in the header, footer or the posts themselves.. (or sidebars, see below).
 * I can clearly see one of the elements on the new page is being closed prematurely,
   and i can only assume this is down to inproperly nested tags.
 * Can you test the template, less some of the sidebar calls, to see if there’s 
   any change..
 *  Thread Starter [substitute](https://wordpress.org/support/users/substitute/)
 * (@substitute)
 * [16 years, 2 months ago](https://wordpress.org/support/topic/recent-posts-loop-1/#post-1338393)
 * I copied and pasted my index.php and replaced
    `<?php while (have_posts()) : 
   the_post(); ?>` with the query post to display the last 10 posts.
 * So How could that page be perfectly valid on all my post pages and not on this
   one since I didn’t do anything??
 * I frankly don’t get it!
    I removed get footer and get sidebars…still not displaying
   corretcly.
 * As far as the errors are concerned..most are related to the collected urls. This
   is an aggregator so I can’t be held responsible for the code written by others!
   If you look at all the errors it goes down to line 500 something and my code 
   must be 25 lines long…

Viewing 15 replies - 1 through 15 (of 16 total)

1 [2](https://wordpress.org/support/topic/recent-posts-loop-1/page/2/?output_format=md)
[→](https://wordpress.org/support/topic/recent-posts-loop-1/page/2/?output_format=md)

The topic ‘Recent posts loop’ is closed to new replies.

## Tags

 * [loop](https://wordpress.org/support/topic-tag/loop/)

 * In: [Fixing WordPress](https://wordpress.org/support/forum/how-to-and-troubleshooting/)
 * 16 replies
 * 3 participants
 * Last reply from: [substitute](https://wordpress.org/support/users/substitute/)
 * Last activity: [16 years, 2 months ago](https://wordpress.org/support/topic/recent-posts-loop-1/page/2/#post-1338409)
 * Status: not resolved

## Topics

### Topics with no replies

### Non-support topics

### Resolved topics

### Unresolved topics

### All topics
