this content was originally posted here.

wordpress show posts loop with feature image thumbnail

this is surprisingly hard to find code that lists all blog posts in a template with the feature image that does not use an additional plugin. you shouldnt need a plugin to do this as its already built in to wordpress.

here is a template which includes a loop. just add the following code to a template file in your theme and create a page that uses this theme to show a list of blog posts with featured image, title and post exerpt with a link to the full post.

<?php /* Template Name: Blog Posts */ get_header(); ?>

<?php 
$args = array( 'posts_per_page' => '10' );
$recent_posts = new WP_Query($args);
while( $recent_posts->have_posts() ) :  
    $recent_posts->the_post() ?>
    <div class='post-list-item'>
        <a href="<?php echo get_permalink() ?>"><?php the_title() ?></a> 
        <?php if ( has_post_thumbnail() ) : ?>
            <?php the_post_thumbnail('thumbnail') ?>
        <?php endif ?>
		<?php the_excerpt(); ?>
    </div>
<?php endwhile; ?>
<?php wp_reset_postdata();?> 

<?php get_sidebar(); ?>

<?php get_footer(); ?>

here is another version of this, using foundation for the row and grid items to make it work nicer on responsive

<?php /* Template Name: Blog Posts */ get_header(); ?>

<div class='row'> 
<div class='large-12 columns'>

<?php 
$args = array( 'posts_per_page' => '10' );
$recent_posts = new WP_Query($args);
while( $recent_posts->have_posts() ) :  
    $recent_posts->the_post() ?>

<div class='row'>
    <div class='medium-2 columns'>
        <?php if ( has_post_thumbnail() ) : ?>
            <?php the_post_thumbnail('thumbnail') ?>
        <?php endif ?>
	</div>
    <div class='medium-10 columns'>
        <a href="<?php echo get_permalink() ?>"><?php the_title() ?></a> 

		<?php the_excerpt(); ?>
	</div>
</div>

<?php endwhile; ?>
<?php wp_reset_postdata();?> 

</div>
</div>

<?php get_sidebar(); ?>

<?php get_footer(); ?>

Demo

database file: /home/kruxor/Dropbox/ssl.kruxor.com/root/kruxor.com/db/db.db
comments_dbfile: /home/kruxor/Dropbox/ssl.kruxor.com/root/kruxor.com/db/comments.db ($db_comments)
views_dbfile: /home/kruxor/Dropbox/ssl.kruxor.com/root/kruxor.com/db/views.db
$dbfood_file: /home/kruxor/Dropbox/ssl.kruxor.com/root/kruxor.com/db/food.db
db_linx: /home/kruxor/Dropbox/ssl.kruxor.com/root/kruxor.com/linx/db/db.db
Classes Loaded:
class/answers.class.php
class/code.class.php
class/comments.class.php
class/content.class.php
class/core.class.php
class/crud.class.php
class/crumbs.class.php
class/featured.class.php
class/food.class.php
class/functions.class.php
class/images.class.php
class/import.class.php
class/links.class.php
class/questions.class.php
class/template.class.php
class/tv.class.php
class/user.class.php
class/utilities.class.php
class/views.class.php
class/widget.class.php
Class Extend Loaded: class/extends/expenses.extend.php
Class Extend Loaded: class/extends/gary_cummins_timeline.extend.php
Class Extend Loaded: class/extends/moo.extend.php
Class Extend Loaded: class/extends/osrs_item_data.extend.php
Class Extend Loaded: class/extends/osrs_slayer.extend.php
Class Extend Loaded: class/extends/osrs_slayer_monsters.extend.php
Class Extend Loaded: class/extends/searches.extend.php
Core Database Connected: expenses.db
expenses add_to_menu:
Class Extend Auto Initialized as: expenses
Core Database Connected: gary_cummins_timeline.db
gary_cummins_timeline add_to_menu:
Class Extend Auto Initialized as: gary_cummins_timeline
Core Database Connected: moo.db
moo add_to_menu:
Class Extend Auto Initialized as: moo
Core Database Connected: osrs_item_data.db
osrs_item_data add_to_menu:
Class Extend Auto Initialized as: osrs_item_data
Core Database Connected: osrs_slayer.db
osrs_slayer add_to_menu:
Class Extend Auto Initialized as: osrs_slayer
Core Database Connected: osrs_slayer_monsters.db
osrs_slayer_monsters add_to_menu:
Class Extend Auto Initialized as: osrs_slayer_monsters
Core Database Connected: searches.db
searches add_to_menu:
Class Extend Auto Initialized as: searches
$user_logged_in:
user access level:
pages:
$p1:view
$p2:code
$p3:vBwnm
$p4:wordpress-show-posts-loop-with-feature-image-thumbnail
$p5:
$p6:
$p:/view/code/vBwnm/wordpress-show-posts-loop-with-feature-image-thumbnail/
Using Template: view-code.html