По умолчанию, при создании поста, если вы выбираете для публикации дату, которая еще не наступила, то посту устанавливается статус future
и он не видим в публичной части сайта. Вы можете изменить это поведение на хуке pre_get_posts
, который срабатывает до основного запроса следующим образом:
add_action( 'pre_get_posts', 'set_future_post_status_main_query' );
function set_future_post_status_main_query( $query ) {
if ( !is_admin() && $query->is_main_query() ) {
$query->set( 'post_status', array( 'future', 'publish' ) );
}
}