在编辑文章时可选择不更新"最后修改时间",适用于修改错别字、调整格式等小改动。
- ✅ 智能默认 - 编辑已发布文章时默认勾选,新文章时不勾选
- 📝 支持文章和页面 - 同时支持文章(Post)和独立页面(Page)
- 🎯 精确保持 - 保持原始的修改时间,完全不改变
- 🔧 调试模式 - 可选开启调试日志,方便排查问题
- 💡 适用场景 - 修改错别字、调整格式、修正链接等
- 下载插件文件
- 将文件夹重命名为
KeepModifiedTime - 上传到 Typecho 的
usr/plugins/目录 - 在后台「控制台」→「插件」中启用插件
编辑已发布的文章:
- 进入文章编辑页面(或独立页面编辑页面)
- 复选框 默认已勾选 ✅
- 直接保存 → 修改时间保持不变
新建文章:
- 撰写新文章
- 复选框 不会勾选
- 发布 → 创建时间和修改时间一致
需要更新修改时间时:
- 编辑文章
- 取消勾选 "不更新修改时间"
- 保存 → 修改时间更新为当前时间
- ✅ 文章内容已更新
- ✅ 修改时间根据复选框状态决定
- 🎯 大多数情况下无需手动操作
原文:这是一篇文章,有个错字别。
修改:这是一篇文章,有个错别字。
操作:勾选"不更新修改时间" → 保存
结果:错别字修正,但修改时间不变
原文:这是一段文字没有换行很长
修改:这是一段文字
添加了换行
操作:勾选"不更新修改时间" → 保存
结果:格式优化,但修改时间不变
原文:访问 http://example.com
修改:访问 https://example.com
操作:勾选"不更新修改时间" → 保存
结果:链接修正,但修改时间不变
添加或调整文章的标签、分类时,不想改变修改时间。
保存文章时:
1. Typecho 自动更新 modified 字段为当前时间
2. 修改时间变更为最新时间
保存文章时:
1. 插件读取原始的 modified 时间
2. 强制使用原始时间覆盖
3. 修改时间保持不变
// 获取原始修改时间
$original = $db->fetchRow(
$db->select('modified')
->from('table.contents')
->where('cid = ?', $cid)
);
// 强制使用原始时间
$contents['modified'] = $original['modified'];┌─────────────────────────────────┐
│ ☑ 不更新修改时间(默认勾选) │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ □ 不更新修改时间(默认不勾选) │
└─────────────────────────────────┘
勾选后保存,修改时间将保持不变。
应该勾选:
- ✅ 修改错别字、标点符号
- ✅ 调整排版格式
- ✅ 修正链接地址
- ✅ 补充标签、分类
- ✅ 轻微的文字优化
不应勾选(应更新时间):
- ❌ 添加新的内容段落
- ❌ 修改文章核心观点
- ❌ 更新过时的信息
- ❌ 补充重要的新信息
可以再次编辑文章,勾选"不更新修改时间"后再次保存,时间会恢复到原来的状态(前提是你记得原来的时间)。
或者直接在数据库中修改 modified 字段。
不会。新建文章时,复选框默认不勾选,插件不会影响新文章的时间设置。即使手动勾选,因为没有"原始修改时间"可恢复,插件也不会执行任何操作。
不会。保持修改时间不变有时反而对 SEO 有好处:
- 搜索引擎不会因为小改动而重新索引
- 避免文章在搜索结果中频繁跳动
- 保持文章的发布时间稳定性
不支持。但对于已发布文章,复选框默认勾选,大部分情况下无需手动操作。
当插件行为异常时,可以在插件设置中开启调试模式,会生成 debug.log 文件,记录详细的执行流程,方便排查问题。
admin/write-post.php::option- 在文章编辑页面添加复选框admin/write-page.php::option- 在页面编辑页面添加复选框Widget_Contents_Post_Edit::finishPublish- 文章保存后恢复时间Widget_Contents_Page_Edit::finishPublish- 页面保存后恢复时间
// 1. 编辑页面加载时:保存原始时间到 Session
$_SESSION['keep_modified_' . $cid] = $originalModified;
// 2. 保存文章后:从 Session 取出原始时间
$originalTime = $_SESSION['keep_modified_' . $cid];
// 3. 直接更新数据库
UPDATE typecho_contents SET modified = ? WHERE cid = ?// 避免重复启动 session
if (session_status() === PHP_SESSION_NONE) {
session_start();
}- ✅ Typecho 1.0+
- ✅ 所有主题
- ✅ 所有编辑器(Markdown、富文本等)
-
明确区分改动类型
- 内容更新 → 不勾选,更新时间
- 格式调整 → 勾选,保持时间
-
记录修改历史
- 重要修改:在文章末尾添加"更新记录"
- 小改动:勾选保持时间,无需记录
-
配合版本控制
- 使用 Git 等工具记录文章变更
- 插件只负责控制 Typecho 的修改时间
可以配合 Typecho 的其他功能使用:
- 文章置顶 - 置顶文章修改错别字时使用
- 草稿保存 - 草稿修改不影响修改时间
- 版本历史 - 某些编辑器插件提供版本历史
原始时间:2024-01-01 10:00:00
修改错别字后:2025-10-13 15:30:00 ← 时间被更新
原始时间:2024-01-01 10:00:00
修改错别字后:2024-01-01 10:00:00 ← 时间保持不变
- 🎉 首次发布
- ✅ 支持文章和页面编辑
- ✅ 智能默认勾选(编辑已发布文章时)
- ✅ 不影响新文章的时间设置
- ✅ 调试模式可选开启
- ✅ Session 安全管理
- ✅ 使用
finishPublish钩子确保可靠性
cxuxrxsxoxr
本插件遵循 Typecho 相关许可协议。