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

WordPress按日、按月统计注册用户数 代码修正调试求助

代码问题说明

原代码存在4个导致运行异常/统计错误的问题:

  • SQL逻辑错误:调用MONTH()取注册月份,却传入代表当月日期的mday参数,字段和参数完全不匹配
  • 统计范围缺失:没有加年份约束,会把历年同月/同日期的注册用户全部统计进去,结果不准
  • 方法选择错误:统计单个数值用get_results()会返回多余的对象结构,取值麻烦且效率低
  • 语法不规范:数组键mday未加引号,会触发PHP语法警告
修复后可直接使用的代码

以下代码适配WordPress原生环境,符合官方开发规范,可直接放在主题模板文件或功能插件中使用:

// 初始化WordPress数据库对象
global $wpdb;
// 读取站点配置的时区对应时间,避免服务器时区和站点时区不一致导致统计偏差
$site_current_time = current_time('mysql');

// 统计今日新增注册用户
$today_new_users = $wpdb->get_var($wpdb->prepare(
    "SELECT COUNT(ID) FROM {$wpdb->users}
    WHERE DATE(user_registered) = DATE(%s)",
    $site_current_time
));

// 统计本月新增注册用户
$month_new_users = $wpdb->get_var($wpdb->prepare(
    "SELECT COUNT(ID) FROM {$wpdb->users}
    WHERE YEAR(user_registered) = YEAR(%s)
    AND MONTH(user_registered) = MONTH(%s)",
    $site_current_time,
    $site_current_time
));

// 按需求格式输出
echo '今日新增用户:' . esc_html($today_new_users) . '<br>';
echo '本月新增用户:' . esc_html($month_new_users);

代码说明:使用$wpdb->prepare()做SQL参数预处理,规避SQL注入风险;输出时用esc_html()做内容转义,避免异常字符导致页面显示错乱;直接取用户ID计数比COUNT(*)查询效率更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 06:21:47