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
相关产品推荐
相关产品推荐

