I was struggling to display a list of recent posts from a specific category archive in WordPress. Thanks to this code from WP Engine, I was able to place a list of recent posts in a widget.
This is the code that needs to be added to your functions.php file. This sample code collects the last 5 posts from a specific archive permalink. If you only want a list of post titles and links you can simply remove the lines of $content that request the bits you don’t need.
function Last5posts() { $args = array( 'posts_per_page' => 5, 'category_name' => 'your-category-permalink'); $last_5_posts_query = new WP_Query( $args ); while($last_5_posts_query->have_posts()) : $last_5_posts_query->the_post(); $link = get_permalink(); $title = get_the_title(); $date = get_the_date(); $content .= '<div class="latest-posts">'; $content .= '<h3><a href='.$link.' target="_top">'.$title.' / '.$date. '</a></h3>'; $content .= '<p class="excerpt">' .get_the_excerpt(). '</p>'; $content .= '</div>'; endwhile; return $content; } add_shortcode('Last5Posts', 'Last5posts' );
Once this code has been added to your functions.php you can then add the shortcode to a page or widget.
[Last5Posts]