By default, WordPress displays a list of your latest blog posts as your home page. However, you can customize your home page to use a static front page. If you do so, how can you have a page that also displays a list of your blog posts?

This in not intuitive at all and might require some light coding.

Basically, you will need to use an existing template within your default theme, Some likely candidates are ones called ‘archive’, ‘category’, ‘articles’, ‘blogs’. (If you can’t find a suitable template, consider adding the one below)

Then you need to create a new page that uses that template. This is fairly easy. Just:

  • From the admin left side menu, choose Pages -> Add new
  • Give the page a title
  • and on the right hand side, under page attributes, select the templates dropdown and choose the template you found or created. Like so:

    Image1

This page will now show your blog posts.

 
If your theme doesn’t have a template that will list your blogs posts, you can use the following:


<?php
/*
Template Name: Articles
*/

get_header();
?>

        <div id="container">
            <div id="content">

<?php
the_post();

query_posts('&showposts=-1&order=ASC');

global $wp_query;
$total_pages = $wp_query->max_num_pages;
if ($total_pages > 1)
{
	?>
                <div id="nav-above" class="navigation">
                  <div class="nav-previous">
	<?php
	next_posts_link(
		__( '<span class="meta-nav">«</span> Older posts', 'hbd-theme' ));
	?>
</div>
                  <div class="nav-next">
	<?php
	previous_posts_link(
		__( 'Newer posts <span class="meta-nav">»</span>', 'hbd-theme' ));
	?>
                  </div>
                </div><!-- #nav-above -->
	<?php
}

while (have_posts())
{
	the_post();
	?>

                <div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
                  <h2 class="entry-title"><a href="<?php the_permalink(); ?>" title="<?php printf( __('Permalink to %s', 'hbd-theme'), the_title_attribute('echo=0') ); ?>" rel="bookmark"><?php the_title(); ?></a></h2>

                  <div class="entry-meta">
                    <span class="meta-prep meta-prep-author"><?php _e('By ', 'hbd-theme'); ?></span>
                    <span class="author vcard"><a class="url fn n" href="<?php echo get_author_link( false, $authordata->ID, $authordata->user_nicename ); ?>" title="<?php printf( __( 'View all posts by %s', 'hbd-theme' ), $authordata->display_name ); ?>"><?php the_author(); ?></a></span>
                    <span class="meta-sep"> | </span>
                    <span class="meta-prep meta-prep-entry-date"><?php _e('Published ', 'hbd-theme'); ?></span>
                    <span class="entry-date"><abbr class="published" title="<?php the_time('Y-m-d\TH:i:sO') ?>"><?php the_time( get_option( 'date_format' ) ); ?></abbr></span>
	<?php edit_post_link( __( 'Edit', 'hbd-theme' ), "<span class=\"meta-sep\">|</span>\n\t\t\t\t\t\t<span class=\"edit-link\">", "</span>\n\t\t\t\t\t" ) ?>
                  </div><!-- .entry-meta -->

                    <div class="entry-summary">
	<?php the_excerpt( __( 'Continue reading <span class="meta-nav">»</span>', 'hbd-theme' )  ); ?>
                    </div><!-- .entry-summary -->

                    <div class="entry-utility">
                      <span class="cat-links"><span class="entry-utility-prep entry-utility-prep-cat-links"><?php _e( 'Posted in ', 'hbd-theme' ); ?></span><?php echo get_the_category_list(', '); ?></span>
                      <span class="meta-sep"> | </span>
	<?php the_tags( '<span class="tag-links"><span class="entry-utility-prep entry-utility-prep-tag-links">' . __('Tagged ', 'hbd-theme' ) . '</span>', ", ", "</span>\n\t\t\t\t\t\t<span class=\"meta-sep\">|</span>\n" ) ?>
                      <span class="comments-link"><?php comments_popup_link( __( 'Leave a comment', 'hbd-theme' ), __( '1 Comment', 'hbd-theme' ), __( '% Comments', 'hbd-theme' ) ) ?></span>
	<?php edit_post_link( __( 'Edit', 'hbd-theme' ), "<span class=\"meta-sep\">|</span>\n\t\t\t\t\t\t<span class=\"edit-link\">", "</span>\n\t\t\t\t\t\n" ) ?>
                    </div><!-- #entry-utility -->
                  </div><!-- #post-<?php the_ID(); ?> -->
	<?php
}

if ($total_pages > 1)
{
	?>
                <div id="nav-below" class="navigation">
                    <div class="nav-previous"><?php next_posts_link(__( '<span class="meta-nav">«</span> Older posts', 'hbd-theme' )) ?></div>
                    <div class="nav-next"><?php previous_posts_link(__( 'Newer posts <span class="meta-nav">»</span>', 'hbd-theme' )) ?></div>
                </div><!-- #nav-below -->
	<?php
}
?>
            </div><!-- #content -->
        </div><!-- #container -->

<?php
get_sidebar();
get_footer();
?>