自定义日期事件的回退条件


Fallback condition on custom date event

需要一点帮助来纠正我的回退条件。我有 3 个不同的选项卡事件,正在发生、即将发生和过期。我在这里的当前代码设置为"正在发生的事件",并且很难理解如果"当前没有发生事件",则很难理解如何或在哪里定位回退。如果我创建回退条件,它最终会复制"未设置当前事件"的消息。我需要在哪里放置条件以使回退不复制其消息。

<div role="tabpanel" class="tab-pane active" id="happening">
<?php
  if ( $query->have_posts() ) : while ( $query->have_posts() ) : $query->the_post();
    // Check event record from ACF
    while ( have_rows('dtl') ) : the_row();
      $date = DateTime::createFromFormat('Ymd', get_sub_field('event_date'));
      $dateA = $date->format('Y-m-d');
      $dateB = date('Y-m-d');
    endwhile; 
    // Compare event record from ACF & current date
    if (strtotime($dateA) == strtotime($dateB)) :
  ?>
  <section class="section-contents"><?php get_template_part( 'templates/events', 'query' ); ?></section>
  <?php else : // fallback if there's no active date ?>
  <section class="section-contents"> <h5 class="text-center text-danger text-uppercase">No Current Events Set</h5> </section>
  <?php endif; // close strtotime
  endwhile; endif; wp_reset_postdata(); 
?>
</div>

循环中有 else 条件,这意味着它会为您的时间比较失败的每次迭代输出您的消息。您需要将其移出循环

 $x=false;
 if ( $query->have_posts() ) : while ( $query->have_posts() ) : $query->the_post();
    // Check event record from ACF
    while ( have_rows('dtl') ) : the_row();
      $date = DateTime::createFromFormat('Ymd', get_sub_field('event_date'));
      $dateA = $date->format('Y-m-d');
      $dateB = date('Y-m-d');
    endwhile; 
    // Compare event record from ACF & current date
    if (strtotime($dateA) == strtotime($dateB)) :
        $x= true;
     ?>
        <section class="section-contents"><?php get_template_part( 'templates/events', 'query' ); ?></section>
  <?php endif; // close if strtotime... 
        endwhile;
  ?>
  <?php endif; // close if statement 
  wp_reset_postdata(); 
  if(!$x){ ?>
  <section class="section-contents"> <h5 class="text-center text-danger text-uppercase">No Current Events Set</h5> </section>
  <?php } ?>