首页 > 解决方案 > 从 WP_Query 中的日期元查询获取月份

问题描述

我将 ACF Pro 存储的日期类型存储在自定义元“event_date”中,我想通过查询按月过滤事件。数据存储在

我知道我需要像这样使用 meta_query 数组:

$args['meta_query'] = array(
    array(
        'key' => 'event_date',
        'value' => ?,
        'compare' => '=',
        'type' => 'DATE'
    )
);

但是meta query允许与完整日期进行比较。如何比较月份变量(数字 1 到 12)是否与event_date元月份相同?

谢谢

标签: phpwordpress

解决方案


假设您使用的是 ACF 的默认日期“保存格式”,即“yymmdd”。尝试以下“元查询”。

一个月:

$month = date('m'); // Change to static if not current month (should be 2 digits)
$start_date = date('Y'.$month.'01'); // First day of the month
$end_date = date('Y'.$month.'t'); // Last day of the month

$args['meta_query'] = array(
    array(
        'key' => 'event_date',
        'value' => array($start_date, $end_date),
        'compare' => 'BETWEEN',
        'type' => 'DATE'
    )
);

年度:

$year = date('Y'); // Change to static if not current year (should be 4 digits)
$start_date = date($year.'0101'); // First day of the year
$end_date = date($year.'1231'); // Last day of the year

$args['meta_query'] = array(
    array(
        'key' => 'event_date',
        'value' => array($start_date, $end_date),
        'compare' => 'BETWEEN',
        'type' => 'DATE'
    )
);

注意:代替'type' => 'DATE',您也可以使用'type' => 'NUMERIC'


推荐阅读