WordPress allows you to schedule posts for future publication. You can showcase these upcoming posts by creating a simple shortcode using WP_Query
. This method lets you list future-dated posts dynamically across your site.
How to Create a Shortcode for Future Posts
Use this step-by-step guide to build the shortcode:
Step 1: Write the Function
Add this function to your theme’s functions.php
file or a site-specific plugin:
function upcoming_posts_shortcode($atts) { $atts = shortcode_atts(array( 'posts_per_page' => -1, 'order' => 'ASC', 'orderby' => 'date', ), $atts); $args = array( 'post_status' => 'future', 'posts_per_page' => $atts['posts_per_page'], 'order' => $atts['order'], 'orderby' => $atts['orderby'], ); $query = new WP_Query($args); ob_start(); if ($query->have_posts()) : while ($query->have_posts()) : $query->the_post(); echo '<h4>' . get_the_title() . '</h4>'; echo '<div>' . get_the_content() . '</div>'; endwhile; wp_reset_postdata(); else : echo '<p>No upcoming posts found.</p>'; endif; return ob_get_clean(); } add_shortcode('upcoming_posts', 'upcoming_posts_shortcode');
Step 2: Insert the Shortcode
You can now use [upcoming_posts]
in any post or page. Here’s the basic shortcode:
[upcoming_posts]
Customize it with optional attributes:
- posts_per_page: How many future posts to show.
- order: Display order (ASC or DESC).
- orderby: Sort by field (e.g., date).
Sample with Attributes
[upcoming_posts posts_per_page="3" order="ASC" orderby="date"]
Best Practices
- Apply styling via CSS for a polished look.
- Limit the output to keep it clean.
- Enable cache plugins to optimize speed.
Further Reading
This feature is great for promoting scheduled content like announcements, events, or upcoming posts.