WordPress - 使用get_posts和高级自定义字段隐藏过去的日期

时间:2014-04-14 09:52:59

标签: php wordpress date advanced-custom-fields

我有一个页面,其中显示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个结果?

0 个答案:

没有答案