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

如何在Oxygen Builder中基于当前日期筛选Meta Box自定义文章类型

在Oxygen Builder中过滤Meta Box创建的过期Event自定义文章

第一步:确认Meta Box日期字段的存储格式

首先要明确event-end-date字段在数据库中的存储格式,这是日期比较生效的核心:

  • 登录phpMyAdmin,找到wp_postmeta表,搜索meta_key为event-end-date的记录,查看meta_value的格式(通常是YYYY-MM-DD纯日期,或YYYY-MM-DD HH:MM:SS带时间格式)。

方法一:通过Oxygen可视化自定义查询配置

在Oxygen的自定义查询设置面板中,添加元查询规则:

  1. 进入Oxygen的「自定义查询」设置,点击「添加元查询组」,设置关系为AND(如果已有其他元查询条件)。
  2. 添加一条元查询规则:
    • 元键:填入event-end-date
    • 比较符:选择>=(表示只显示结束日期晚于等于当前日期的活动)
    • 元值:使用Oxygen动态数据标签,根据存储格式选择:
      • 纯日期格式(YYYY-MM-DD):填写{{current_date format="Y-m-d"}}
      • 带时间格式(YYYY-MM-DD HH:MM:SS):填写{{current_date format="Y-m-d H:i:s"}}
    • 元类型:对应选择DATE或DATETIME

如果需要同时过滤开始日期(比如显示正在进行中的活动:开始日期≤当前日期且结束日期≥当前日期),可以再添加一条元查询规则:

  • 元键:event-start-date
  • 比较符:<=
  • 元值:同样用对应格式的{{current_date}}动态标签
  • 元类型:对应DATE或DATETIME

方法二:通过代码修改查询(更灵活)

如果可视化配置遇到动态标签不生效或复杂逻辑需求,可添加以下PHP代码到主题的functions.php文件或自定义代码插件中:

add_action( 'pre_get_posts', 'filter_expired_events' );
function filter_expired_events( $query ) {
    // 仅针对前台主查询、event自定义文章类型生效
    if ( ! is_admin() && $query->is_main_query() && $query->get( 'post_type' ) === 'event' ) {
        // 匹配Meta Box存储的日期格式,纯日期用'Y-m-d',带时间用'Y-m-d H:i:s'
        $current_datetime = current_time( 'Y-m-d' );
        
        // 构建元查询条件
        $meta_query = array(
            array(
                'key'     => 'event-end-date',
                'value'   => $current_datetime,
                'compare' => '>=',
                'type'    => 'DATE', // 存储为DATETIME则改为DATETIME
            )
        );
        
        // 如果需要同时过滤开始日期,取消下面注释并调整逻辑
        /*
        $meta_query[] = array(
            'key'     => 'event-start-date',
            'value'   => $current_datetime,
            'compare' => '<=',
            'type'    => 'DATE',
        );
        */
        
        $query->set( 'meta_query', $meta_query );
    }
}

常见问题排查

  • 日期格式不匹配:确保元值的格式和数据库中存储的完全一致,比如存储的是MM/DD/YYYY就不能用YYYY-MM-DD查询。
  • 时区问题:WordPress的current_time会自动匹配站点时区,确保站点时区设置正确(后台「设置」→「常规」)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 21:58:14