后台显示某个文件被下载 860 次,访问日志里实际 GET 只有 430 次,正好两倍,换一个主题后计数就恢复正常。碰到这种情况,我一般先确认改动有没有真的生效。

原因不复杂,统计脚本通过 wp_footer 挂载,子主题和父主题各挂了一次,同一段 JS 输出两遍。计数接口没做请求去重,两次都写进数据库。

「下载计数重复」这类改动最怕改一半,回滚脚本先准备好,再动生产。日志级别临时调高可以,记得改回去,长期开着既占磁盘又掩盖真问题。

if ( ! has_action( 'wp_footer', 'notice_download_track' ) ) {
    add_action( 'wp_footer', 'notice_download_track' );
}

权限不要一口气开到最大,先加到够用再往上试,范围小才好收。把复现步骤压到三条以内,交给同事也能跑出来,才算真的定位清楚。

改动写完就同步给同事,下一个人踩同一个坑,成本还是你的。

具体做法是,用 has_action 检查钩子是否已挂,重复的直接跳过;计数改成在服务端下载动作里加一,别依赖前端上报;下载一次后查数据库,确认计数只加一。

最后用这个标准收尾,下载一次计数只加一,日志条数与后台数字一致。

作者 9823189