现象:后台一键更新全站文档不生效,生成后文章发布时间错乱,改完代码后更新恢复正常。

常见故障原因
1.dedecms缓存数据异常:文档统计表、arccache缓存没清理,一键更新读取旧缓存,导致时间错乱、生成空白。
2.数据库表损坏:`dede_archives`、`dede_arctiny`文章主表/微表数据不一致,两个表时间字段不匹配,生成html读取时间冲突。
3.核心生成文件bug:`makehtml_all.php`(一键更新程序)旧版本织梦存在bug,批量重建时没有同步更新pubdate、senddate时间字段,造成文章时间跳变。
4.模板调用错误:模板错误调用`pubdate`/`senddate`/`sortrank`,一键重新生成html,会读取数据库错误时间;不是页面静态缓存问题,是数据库取值问题。
5.权限问题:data、html目录读写权限不足,一键更新执行中断,部分文档没生成,看起来像更新失败。

你修改代码可以更新,但要排查遗留坑
改代码能跑,不等于根源修复,后续新增文章、再次一键更新,很可能复现时间错乱。

1、核对两张核心数据表时间必须一致
`dede_archives`:`pubdate`(发布时间)、`senddate`(写入时间)、`sortrank`(排序时间)
`dede_arctiny`:同样存在这三个时间字段
织梦一键更新,arctiny微表优先读取,两张表时间不一致,静态页出来时间就乱。
修复:不要只改模板,数据库两张表时间同步。

2、清理系统缓存(每次修复后必做)
后台:系统→性能选项→清除缓存;
服务器删除:`data/cache/`、`data/sessions/`全部文件,不要删文件夹。

3、一键更新操作正确顺序(避免再次错乱)
1.清理缓存
2.【更新栏目缓存】
3.【更新文档统计】
4.不要直接点“一键更新全部”,优先:更新文档html→再更新首页、栏目页

4、模板时间标签正确写法,防止再次错乱
```
<!--正确:读取真实发布时间--
[field:pubdatefunction="MyDate('Y‑m‑d',@me)"/]

<!--坑点:sortrank是排序时间,一键重生成会被改写,不要用来做文章显示时间--
[field:sortrankfunction="MyDate('Y‑m‑d',@me)"/]
```
很多人模板误用`sortrank`,一键全站更新,sortrank会重置,页面时间直接乱跳。

如果后续复现的排查方向
1.确认你修改的是哪个文件:`makehtml_all.php`还是`arc.archives.class.php`,织梦升级覆盖文件会把你的修改冲掉;记得备份修改过的源码。
2.数据库修复:phpmyadmin执行修复表,修复`dede_archives`、`dede_arctiny`。
3.关闭“重新生成时重置排序时间”这类隐藏参数,旧版织梦一键更新会重置sortrank。