我在一个网站上工作,并创建了一个"事件"帖子类型,这是拉事件,并显示他们是否大于今天的日期:

<section class="row home-news bg-pale-blue" id="events__section">
  <div class="inner">
    <div class="block">
    <div class="columns listing-title wide-gutter">
       <div class="col1-2 title">
         <h3>Upcoming Events</h3>
       </div>
    </div>
    <div class="columns article-listing news-listing wide-gutter">
    <?php 
      $today = date('Ymd');
      $homepageEvents = new WP_Query(array(
        'posts_per_page' => 3,
        'post_type' => 'event', 
        'meta_key' => 'event_date',
        'orderby' => 'meta_value_num', 
        'order' => 'ASC', 
        'meta_query' => array(
            array(
            'key' => 'event_date', 
            'compare' => '>=', 
            'value' => $today, 
            'type' => 'numeric'
            )
             )
        ));
                    
        while($homepageEvents->have_posts()){
          $homepageEvents->the_post(); ?>
            <div class="col1-3 item">
               <a class="blog-line" href="<?php the_permalink(); ?>">
               <span class="date"><?php the_field('event_date',$post->ID); ?></span>
               <h2><?php the_title(); ?></h2>
               <p><?php echo wp_trim_words(get_field('summary_text',$post->ID), 25); ?></p>
               <span class="more-link"><i class="fa fa-chevron-circle-right"></i>&nbsp;Read more</span>
               </a>
            </div>
        <?php } ?>
            </div>
        </div>
    </div>
</section>

我想要做的是隐藏整个部分,如果没有即将到来的活动,怎么做呢?

基于此,我只需要隐藏该部分,如果所有当前事件都是:‘Value’&lt;$Today,

非常感谢

推荐答案

如果所有当前事件都是过go 的(即‘Value’<;$Today),您可以try 这种方法来隐藏该部分.修改WP_Query以返回所有事件,而不仅仅是将来的事件.然后,您可以遍历这些事件并判断它们是否都是过go 的事件.如果是,您可以返回并且不显示该部分.

修改了该部分中的代码

<?php 
 $today = date('Ymd');
 $allEvents = new WP_Query(array(
  'posts_per_page' => -1,
  'post_type' => 'event', 
  'meta_key' => 'event_date',
  'orderby' => 'meta_value_num', 
  'order' => 'ASC', 
  ));

 $allInPast = true;
 while($allEvents->have_posts()){
  $allEvents->the_post();
  $event_date = get_field('event_date',$post->ID);
  if($event_date >= $today){
    $allInPast = false;
    break;
  }
 }

 if($allInPast){
  return;
 }

 $homepageEvents = new WP_Query(array(
  'posts_per_page' => 3,
  'post_type' => 'event', 
  'meta_key' => 'event_date',
  'orderby' => 'meta_value_num', 
  'order' => 'ASC', 
  'meta_query' => array(
      array(
      'key' => 'event_date', 
      'compare' => '>=', 
      'value' => $today, 
      'type' => 'numeric'
      )
       )
  ));

 while($homepageEvents->have_posts()){
  $homepageEvents->the_post(); ?>
    <div class="col1-3 item">
       <a class="blog-line" href="<?php the_permalink(); ?>">
       <span class="date"><?php the_field('event_date',$post->ID); ?></span>
       <h2><?php the_title(); ?></h2>
       <p><?php echo wp_trim_words(get_field('summary_text',$post->ID), 25); ?></p>
       <span class="more-link"><i class="fa fa-chevron-circle-right"></i>&nbsp;Read more</span>
       </a>
    </div>
 <?php } 
?>

这里使用的$allInPast变量设置为FALSE,循环被中断.如果所有事件都是过go 的,则$allInPast保持为真,并且不显示该部分.

Php相关问答推荐

如何使用PHP停止foreach循环中的重复项?

启用额外的WooCommerce产品库存位置

无法使用DOMPDF在PDF中呈现非ANSI字符

将带有值的属性添加到WooCommerce产品,保留现有属性

使用PHP阅读XML提要

为什么正则表达式与得到的文本块之前得到的也行?

WooCommerce我的帐户:从帖子作者处获取自定义帖子类型帖子ID

目标类[Set_Locale]不存在.拉威尔

有没有可能从composer 过时的输出中隐藏不需要的主要版本?

PHP根据特定索引值从中删除子数组

使用ESI的Symfony Sulu清漆

如何在PHP中组合日期范围

在WooCommerce上设置简单和可变产品的最小订单量

服务器升级到新的mysql版本8.0.34后查询错误

如何将不同的 Woocommerce 费用合并为一个名称?

根据所选付款方式启用/禁用 WooCommerce 所需的 checkout 字段

当所有对象都属于同一类型时,我可以省略 PHP in_array() 中的 strict 参数吗?

使用 Process facade 在外部 Laravel 项目上运行 Artisan 命令会返回主项目的数据库错误

遇到特定键时修改二维数组以创建嵌套数据集

Php 的新WeakMap - 枚举曾经被垃圾收集过吗?