WordPress:统计今日发布与修改的文章数量
问题解决与代码修正
问题1:删除-1后返回0的原因及解决
手动拼接日期易出现时区或边界判断误差,比如站点时区与服务器时区不一致时,直接用$today['mday']生成的after条件无法正确覆盖今日时间范围。改用WordPress内置的'after' => 'today'可自动适配站点时区,精准匹配今日00:00:00之后的内容,彻底解决返回0的问题。
问题2:同时统计今日发布和修改的文章
不存在published这个字段,正确的发布时间字段是post_date。要同时统计两类文章,需在date_query中使用OR逻辑,分别对post_date和post_modified做今日范围查询,同时添加distinct参数避免同一篇文章被重复统计(比如今日发布且修改的文章)。
修正后的完整代码
function sabtfactor_su($shenase){ $s_b = get_posts(array( 'fields' => 'ids', 'post_type' => 'post', 'author' => $shenase, 'numberposts' => -1, 'meta_key' => 'shomare_status', 'meta_value' => 'Example', 'date_query' => array( 'relation' => 'OR', array( 'column' => 'post_date', 'after' => 'today', 'inclusive' => true, ), array( 'column' => 'post_modified', 'after' => 'today', 'inclusive' => true, ), ), 'distinct' => true, )); return count($s_b); }
关键修改说明
- 替换手动日期拼接为
'after' => 'today',适配站点时区,避免边界错误 - 新增
OR关系的日期查询组,同时覆盖发布和修改时间 - 添加
distinct参数,确保同一篇文章不会被重复计数 - 移除冗余的
+0,count()直接返回有效数字
内容的提问来源于stack exchange,提问作者Ahmad Karimi
相关产品推荐
相关产品推荐

