需要一点帮助来纠正我的后备条件。我有3个不同的标签事件,发生,即将到来和过期。我在这里的当前代码设置为“发生事件”并且如果存在“当前没有发生的事件”则难以理解如何或在何处定位回退。如果我创建后备条件,它最终会复制“No Current Events Set”的消息。我应该在哪里放置条件以使后备不重复其消息。
<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>
答案 0 :(得分:1)
你在循环中有你的其他条件,这意味着它会在你的时间比较失败的每次迭代时输出你的消息。你需要把它移到循环之外
$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 } ?>