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

WordPress自定义文章类型ACF日期字段按当日日月筛选实现问题

实现方案

ACF日期字段默认存储格式为Ymd(8位数字,例如19900520代表1990年5月20日),我们只需匹配存储值的后四位(对应月份+日期)与当前日期的月日一致即可,修改后的查询代码如下:

// 获取当前日期的月份+日期,格式为两位月+两位日,如0520代表5月20日
$hoy_md = date('md');
$args = array(
    'post_type'     => 'celebridades', // 自定义文章类型名称
    'nopaging'      => true,
    'orderby'       => 'meta_value_num',
    'meta_key'      => 'nacimiento_', // ACF日期字段名
    'meta_query'    => array(
        'relation' => 'AND',
        // 可选:排除未填写出生日期的条目
        array(
            'key' => 'nacimiento_',
            'compare' => 'EXISTS'
        ),
        // 匹配出生日期的月日与当前月日一致
        array(
            'key' => 'nacimiento_', 
            'value' => '^[0-9]{4}' . $hoy_md . '$', 
            'compare' => 'REGEXP',
            'type' => 'CHAR'
        )
    )
);

如果你的ACF日期字段修改过存储格式,调整对应匹配规则即可:例如存储格式为Y-m-d时,将正则规则改为^[0-9]{4}-' . date('m-d') . '$即可。
如果数据量较小,也可以用更简单的LIKE写法替换上面的正则匹配规则,性能差异可以忽略:

array(
    'key' => 'nacimiento_', 
    'value' => '%' . $hoy_md, 
    'compare' => 'LIKE'
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 04:00:04