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

WordPress中如何向$args['date_query']添加多年份数组

WordPress 多年份日期查询参数修复

原代码的问题在于每次循环都会直接覆盖$args['date_query']数组,导致最终仅保留最后一次循环的年份条件,无法实现多年份的OR查询逻辑。

原代码

if ( !empty($years) ) {
    foreach($years as $year):
        $args['date_query'] = array(
            'relation' => 'OR',
            array( 'year' => $year),
        );
    endforeach;
}

输入示例

$years = array(2022,2023); 

期望的正确查询参数

$args['date_query'] = array( 
    'relation' => 'OR', 
     array( 'year' => 2022), 
     array( 'year' => 2023), 
);

修复方案

先初始化date_query的基础结构并设置relation为OR,再通过循环将每个年份的查询条件追加到数组中,而非每次重新赋值整个数组:

if ( !empty($years) ) {
    // 初始化date_query的基础结构
    $args['date_query'] = array(
        'relation' => 'OR',
    );
    // 循环追加每个年份的查询条件
    foreach($years as $year) {
        $args['date_query'][] = array( 'year' => $year );
    }
}

这样处理后,所有年份的查询条件都会被添加到date_query数组中,实现多年份文章的OR查询效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 01:04:59