WordPress

Display your WordPress Recent Posts FAQs

In 2012 I published a tutorial display your WordPress Recent Posts on a Static Page.  I wouldn’t ever have dreamed that it would be one of the most commented posts on my blog and even now people are still asking for hints and tips on how to expand the code further so I’ve decided to go through all the comments and gathered enough to have a FAQ section.

**Generally all code will be specified in the loop unless otherwise stated**

Featured Images (Post Thumbnails)

My featured Image doesn’t show up.

If your post thumbnails don’t work make sure you have set a featured image on your post edit screen and make sure you have included the following snippet in functions.php

<?php add_theme_support( 'post-thumbnails' );?>

Can I change the size of my featured image?

If you want to use the default image size then simply use

<?php the_post_thumbnail();?>

You can also change the size of your post’s featured image by choosing one of the following.

<?php the_post_thumbnail( 'medium' );?>
<?php the_post_thumbnail( 'large' );?>
<?php the_post_thumbnail( 'full' );?>
<?php the_post_thumbnail( array(100, 100) ); //Custom Size?>

If that doesn’t work try get_the_post_thumbnail

<?php echo get_the_post_thumbnail($post->ID, 'full'); ?>
<?php echo get_the_post_thumbnail($post->ID, array(100,100),'thumbnail');?>

Errors

If you get PHP errors check that your path to wp-blog-header is correct and you have used a relative link

folder/wp-blog-header.php

rather than an absolute link

https://mydomain

Also check for any whitespace after the opening and closing PHP tags, particularly in your functions.php.

If you get 404 errors try adding the call to the blog header below the doctype If that doesn’t work then add the following under the call to blog header but above the doctype tag.

<?php require('wp-blog-header.php');  

/*if you are getting 404 errors add the next 2 lines*/ status_header(200);
 nocache_headers();

?>
<!--HTML starts here-->

To enable error messages but not display them check/add your wp-config.php for/with the following

<?php 

define('WP_DEBUG', true); // or false
if (WP_DEBUG) {
  define('WP_DEBUG_LOG', true);
  define('WP_DEBUG_DISPLAY', false);
  @ini_set('display_errors',0);
}  
?>

Pages & Posts

Can I get the full content or excerpt?

If you want to add the full content use

<?php the_content();?>

and if you only want to display a snippet use

<?php the_excerpt();?>

Can I display the full post content without the more tag?

Yes add the following above the loop

<?php global $more; $more=1; ?>

and the following  inside the loop

<?php the_content();?>

Can I display pages instead of posts?

Yes simply change an argument in the $args array.

$args = array( 'numberposts' => 6, 
               'post_status'=>"publish",
               'post_type'=>"page");//change post_type from post to page

Can I choose what posts or pages I want to display?

Yes but only by post or page ID

Can I choose what Categories I want to display?

Yes but only by Cat ID

Can I use a unordered list instead of a DIV?

Yes, sure you can just remember to add the opening

<ul>

tag above the foreach loop and the closing tag

</ul>

below the loop.

Can I use this code within my current WordPress theme?

Yes, but the code is slightly different depending on the outcome you want.  If you want the posts outside the loop then the original code snippet should work.

If you are adding the posts inside a theme page that already contains the loop, my preference would be to add a new function inside functions.php and call it within that loop, as shown in the examples below.

The following goes inside functions.php

<?php

/*****
Get the latest 10 posts function to add to functions.php
*****/
function get_wow_posts(){

global $post;
$args = array( 
              'numberposts' => 6,
              'post_status'=>"publish",
              'post_type'=>"post",
              'orderby'=>"post_date");


$postslist = get_posts( $args );

echo '<ul id="latest_posts">';
 
foreach ($postslist as $post) :  setup_postdata($post); ?>
 
<li>
  <strong><?php the_date(); ?></strong><br />

  <a href="<?php the_permalink(); ?>" title="<?php the_title();?>"> 
<?php the_title(); ?>
 </a>

</li>
        <?php endforeach;?>
</ul>
    <?php wp_reset_postdata();
}
?>

Below is an example, highlighted on line 13, of displaying posts inside a typical theme page by calling the function

get_wow_posts()

above.  Please note that all themes differ.

<?php if ( have_posts() ) :?>

     <?php while ( have_posts() ) : the_post();?>

          <article <?php post_class('home-page'); ?>>

                 <?php if (!is_front_page()) : ?>
                      <h1 class='title'><?php the_title();?></h1>
                 <?php endif; ?>

                        <div class="content">

                                <?php get_wow_posts();?>

                        </div><!-- the-content -->

                    </article>

                <?php endwhile; ?>

            <?php else :?>
                <article class="post error">
                    <h1 class="404">Nothing has been posted like that yet</h1>
                </article>

<?php endif;?>

Can I use Custom Fields?

Yes, you can. For instance, if I created a custom field called ‘Teaser’ I would add the following.

<?php echo get_post_meta($post->ID, 'teaser', true);?>

How come I am only able to see 1 page or post?

Do you only have 1 post/page published? Publish more and see if it works.

Dates

How Can I display the date with each post?

Change

<?php the_date();?>

to

<?php echo get_the_date();?>

Server

Can I link to my WordPress from a different server?

No, try parsing the RSS feed as in the following tutorial.

Can I link to my WordPress site from another site on the same server?

Yes, you can but it depends on your server settings and would be a case of trial and error.

Does this work with wordpress.com websites?

No, you must have your own hosting.

Can I reduce the server load?

You can reduce the server load by disabling the theme when loading.

Add the following above the call to blog-header.

define('WP_USE_THEMES', false);

Possible Problems/ Debugging

Some image and post plugins may conflict with the snippet so if it doesn’t work try disabling them temporarily. If it doesn’t work for you try switching to the default WordPress theme that comes bundled with it. Check out the official WordPress Developer site for more detailed information.

Conclusion

Hopefully the above will answer any questions you may have. If it doesn’t, please feel free to post any questions and I’ll try my best to answer them and update this post periodically.

Share
Published by
Tracy Ridge

Recent Posts

Hot New Web Dev – October 2024

Welcome to Hot Web Dev October 2024, featuring the latest technology and web development news.… Read More

3 weeks ago

New Svelte 5 Guessing Game 2024

In this tutorial, you’ll build a fun and interactive guessing game using Svelte 5, the… Read More

2 months ago

Hot New Web Dev – September 2024

Welcome to Hot Web Dev September 2024, featuring the latest technology and web development news.… Read More

2 months ago

New JavaScript Guessing Game 2024

The JavaScript guessing game tutorial is a simple beginner's project. It features modern JavaScript syntax… Read More

2 months ago

Hot Web Dev – 12 Useful Top Tools of 2023

If you have been following the monthly Hot Web Dev magazine you will find the… Read More

2 months ago

Hot New Web Dev – August 2024

Welcome to Hot Web Dev August 2024, featuring the latest technology and web development news.… Read More

3 months ago