我有一个页面,其中显示3个即将举行的活动。我收到了来自特定父级的3个帖子,按照使用Date Picker插件设置的日期排序。
我设法让它工作,它显示了正确的帖子,根据日期选择器排序。请参阅以下代码:
<?php
$posts = get_posts(array(
'post_type' => 'page',
'post_parent' => 307,
'numberposts' => 3,
'meta_key' => 'info_startdate',
'orderby' => 'meta_value_num',
'order' => 'ASC'
));
?>
<?php foreach($posts as $post) { ?>
<?php setup_postdata($post); ?>
<div class="col-md-4">
<?php $info_date = get_field("info_date"); ?>
<small><?php echo $info_date; ?></small>
<h5><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h5>
</div>
<?php } ?>
<?php wp_reset_postdata(); ?>
现在出现问题,如果事件已经过去,我需要不显示结果。如果日期选择器的值是过去的日期。我发现了一些几乎可以解决问题的代码,见下文:
<?php foreach($posts as $post) { ?>
<?php setup_postdata($post); ?>
<?php
$end_date_passed_check = DateTime::createFromFormat('Ymd', get_field('info_startdate'));
if ($end_date_passed_check->format('Ymd') < date('Ymd')) {
// do nothing
} else { ?>
<div class="col-md-4">
<?php $info_date = get_field("info_date"); ?>
<small><?php echo $info_date; ?></small>
<h5><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h5>
</div>
<?php } ?>
现在它没有显示过去的结果,很棒。但是因为get_posts函数将结果限制为3使用&#39; numberpost&#39;,如果有例如过去的2个帖子,它将只显示1个帖子。我如何让它不显示过去的帖子,但仍显示3个结果?