WordPress技术需求:获取当月文章发布日与标题数组
解决方案
你的代码核心问题是遍历WP_Query结果的方式错误,且错误地通过字符串拼接构建数组。以下是修正后的代码,可生成你需要的数组格式:
$currMonth = date('n'); $getEvents = new WP_Query([ 'post_type' => 'event', 'post_status' => ['publish', 'future'], 'monthnum' => $currMonth, 'posts_per_page' => -1 // 确保获取当月所有文章 ]); $events = []; // 正确遍历WP_Query查询结果 if ($getEvents->have_posts()) { while ($getEvents->have_posts()) { $getEvents->the_post(); $date = get_the_date('d'); $title = get_the_title(); if ($title) { // 直接添加符合要求的子数组到目标数组 $events[] = [$date => $title]; } } // 重置全局post对象,避免影响后续查询或模板输出 wp_reset_postdata(); }
关键修正说明:
- 采用WordPress标准的
have_posts()+the_post()循环遍历查询结果,也可直接遍历$getEvents->posts数组实现相同效果。 - 直接创建
[$date => $title]格式的子数组并推入$events,而非拼接字符串,这样才能生成你需要的二维关联数组结构。 - 添加
posts_per_page => -1参数,确保获取当月所有event类型文章,避免默认仅返回10篇的限制。 - 循环结束后调用
wp_reset_postdata(),重置全局post对象,防止后续操作出现异常。
内容的提问来源于stack exchange,提问作者Sergey Pervushin
相关产品推荐
相关产品推荐

