Показывать запланированные публикации на странице архива
Я бы хотел, чтобы мой archive.php ежедневный просмотр страницы (is_day) для отображения запланированных сообщений (post_status = будущее). Например, если я пойду в mysite.com/2011/05/20 Я бы увидел все сообщения, которые должны появиться 20 мая.
Цикл страницы архива начинается с:
if ( have_posts() )
the_post();
И заканчивается:
rewind_posts();
get_template_part( 'loop', 'archive' );
Нужно ли мне сделать второй цикл или я могу изменить этот единственный цикл, чтобы показывать запланированные публикации? Если да, то как? Спасибо.
1 answers
Все просто - оставьте свои шаблоны архива в покое и поместите это в свой functions.php
;
add_action( 'pre_get_posts', function ( $wp_query ) {
global $wp_post_statuses;
if (
! empty( $wp_post_statuses['future'] ) &&
! is_admin() &&
$wp_query->is_main_query() && (
$wp_query->is_date() ||
$wp_query->is_single()
)
) {
$wp_post_statuses['future']->public = true;
}
});
По сути, это говорит;
Если мы находимся в архиве дат или просматриваем одно сообщение, сделайте будущие сообщения общедоступными.
В результате WordPress ведет себя нормально, когда вы просматриваете архивы за любую заданную дату, за исключением того, что теперь он также включает сообщения "из будущего"!.