использую кастомный цикл с выводом будущих записей, относитительно текущей даты:
<?php
$args = array(
'numberposts' => 3,
'post_type' => 'post',
'post_status' => 'publish, future',
);
$posts = get_posts($args);
//список записей
foreach ($posts as $post) {
$md[$post->ID]['date'] = date("d.m.Y", strtotime($post->post_date));
$md[$post->ID]['id'] = $post->ID;
$md[$post->ID]['post_title'] = $post->post_title;
$md[$post->ID]['post_excerpt'] = $post->post_excerpt;
}
//группировка по дате
$resultArray = array();
array_walk($md, function($item, $key) use (&$resultArray)
{
$resultArray[$item['date']][] = $item;
});
//сортировка в порядке возрастания записей от текущей даты(на ближайшие 20 дней)
$new_posts = array();
for ($i = 0; $i < 20; $i++) {
$nd = date('d.m.Y', strtotime(date('Y-m-d') . '+' . $i . 'day'));
if (!empty($resultArray[$nd])) {
$new_posts[$nd] = $resultArray[$nd];
}
} ?>
<?php foreach($new_posts as $key=>$val) {
foreach($val as $nm) { ?>
<?php echo $nm['post_title']; ?>
<?php echo $nm['post_excerpt'];?>
<?php }
} ?>
следом идет стандартный цикл:
<?php
while ( have_posts() ) :
the_post();
the_title();
the_content();
endwhile; // End of the loop.
?>
как именно нужно сбросить, чтобы из страндартного вывода текущей страницы показывался верный id (контент, заголовок), а не из первого кода..
вставлял в разные места wp_reset_postdata(); - не срабатывает.
работает, только если удалить
$posts = get_posts($args);