You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress实现过期事件隐藏及WP_Query日期查询优化

解决WordPress事件板块无有效事件时标题残留问题

问题描述

网站的事件板块包含“Upcoming Events”标题及下方的即将举办事件,过期事件会自动隐藏,但当没有有效事件可显示时,标题仍会保留。原因是原WP_Query未做日期筛选,仍能识别到已过期的事件帖子,导致标题始终可见。需要修改WP_Query逻辑,加入事件日期与当前日期的对比,实现无有效事件时整个板块隐藏。

修改后的代码

<?php
    $args = array(
        'post_type' => 'event',
        'posts_per_page' => 4, // 推荐用posts_per_page替代已废弃的showposts
        'meta_key' => 'event_date',  
        'orderby' => 'meta_value',
        'order' => 'ASC',
        'meta_query' => array(
            array(
                'key' => 'event_date',
                'value' => date('F j, Y'),
                'compare' => '>',
                'type' => 'DATE'
            )
        )
    );
    $events_query = new WP_Query( $args );
?>
<?php if ( $events_query->have_posts() ) : ?>
<h2>Upcoming Events</h2>
<?php while ( $events_query->have_posts() ) : $events_query->the_post(); ?>
<h3><?php the_title(); ?></h3>
<a href="<?php the_permalink() ?>">View</a>
<?php endwhile; ?>
<?php wp_reset_postdata(); ?>
<?php endif; ?>

逻辑说明

  • 在WP_Query的参数中添加meta_query,直接筛选出event_date字段值晚于当前日期的事件
  • 当没有符合条件的事件时,$events_query->have_posts()返回false,包裹标题和事件列表的if块不会执行,从而实现整个板块隐藏
  • 额外提示:showposts参数已被WordPress官方废弃,推荐使用posts_per_page替代

内容的提问来源于stack exchange,提问作者Sawyer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 19:18:43