Show scheduled posts in main loop but not in WP_Query?
The blog page should show scheduled posts in the main loop. I've done that with this code:
/**
* Show scheduled posts in main loop
*/
function fa_show_scheduled_posts( $query ) {
if( $query-is_main_query() ! is_admin() $query-is_home() ) {
$query-set( 'post_status', [ 'publish', 'future' ] );
}
}
add_action( 'pre_get_posts', 'fa_show_scheduled_posts' );
But there's a different section that shows the 4 latest posts with a WP_Query. Even if I change the post status to only be published posts, it shows the scheduled posts.
Is there a way to show them in the main loop but not the WP_Query?
My WP_Query code:
?php
$args = array(
'showposts' = 4,
'post_status' = array( 'publish' )
);
$the_query = new WP_Query( $args );
Update with my new code, with wp_reset_postdata() coming after everything
?php
$args = array(
'showposts' = 4,
'post_status' = array( 'publish' )
);
$the_query = new WP_Query( $args );
if ( $the_query-have_posts() ) { ?
div class=featured-posts__wrap
div class=featured-posts js-featured-posts
?php while ( $the_query-have_posts() ) {
$the_query-the_post(); ?
div class=featured-posts__post data-title=?php the_title(); ?
?php if ( has_post_thumbnail() ) { ?
div class=post-thumb
a href=?php the_permalink(); ? rel=bookmark
?php the_post_thumbnail('full'); ?
/a
/div
?php } else { ?
?php } ?
/div
?php } ?
/div
/div
?php } ?
div class=featured-posts-info
?php the_title( 'h2 class=featured-posts-info__title', '/h2' ); ?
/div
?php wp_reset_postdata(); ?
Topic pre-get-posts post-status loop wp-query Wordpress
Category Web