管理系统(DedeCMS)中,文章发布时间的修改是一个常见的需求,默认情况下,一旦文章发布后,再次编辑保存时系统会自动更新时间戳,导致文章显示的时间变为最新修改时间,而不是原始的发布时间,这在某些情况下可能不符合网站运营者的需求,本文将详细介绍如何在DedeCMS 5.7版本中实现修改文章时保持原发布时间不变的解决方法。
方法一:通过修改数据库字段解决
1、备份数据库
在进行任何数据库操作前,务必先备份数据库,以防数据丢失或误操作。
2、修改数据库表结构
进入数据库管理工具(如phpMyAdmin),找到存放文章数据的表(一般为dede_archives
),添加一个新的字段用于存储原始发布时间,假设新字段名为original_pubdate
,类型为datetime
。
3、迁移原始发布时间
使用SQL语句将所有现有文章的当前发布时间复制到新的original_pubdate
字段中:
“`sql
UPDATE dede_archives SET original_pubdate = pubdate;
“`
4、修改文章发布逻辑
找到并修改DedeCMS的后台代码文件(通常位于/dede/archives_do.php
),在保存文章时的逻辑部分,将pubdate
字段的值设置为文章的创建时间,而不是当前时间:
“`php
if ($aid) {
// 获取文章的原始发布时间
$original_pubdate = $dsql>GetOne("SELECT original_pubdate FROM#@__archives
WHERE id=’$aid’");
if ($original_pubdate) {
$pubdate = strtotime($original_pubdate);
} else {
$pubdate = time();
}
} else {
$pubdate = time();
}
“`
5、前端显示调整
修改模板文件中显示发布时间的部分,使其优先显示original_pubdate
字段,如果该字段为空,则显示pubdate
字段:
“`php
if ($original_pubdate) {
$show_pubdate = $original_pubdate;
} else {
$show_pubdate = $pubdate;
}
echo date(‘Ymd H:i:s’, $show_pubdate);
“`
方法二:通过插件实现
1、安装插件
有些开发者已经开发了相关的插件来实现这一功能,可以在DedeCMS官方插件市场或者第三方市场寻找并下载相应的插件。
2、配置插件
根据插件的说明文档进行安装和配置,一般需要将插件上传到指定目录,并在后台启用插件。
3、测试与验证
编辑一篇文章并保存,查看前台是否显示正确的原始发布时间。
FAQs
Q1: 如果忘记备份数据库,如何恢复原始数据?
A1: 如果忘记备份数据库,可以尝试从服务器的快照或者最近的备份中恢复数据,如果没有快照或备份,可能需要联系专业的数据恢复服务,但成功率不能保证,定期备份是最佳实践。
Q2: 插件方式和手动修改数据库方式哪种更好?
A2: 插件方式通常更加简便和安全,因为插件经过测试和验证,适合大多数用户,而手动修改数据库则需要一定的技术基础,并且存在风险,如果对数据库操作不熟悉,建议使用插件方式。
通过以上方法,可以有效解决DedeCMS 5.7版本中修改文章时保持原发布时间不变的问题,选择合适的方法,确保网站内容的管理和展示符合实际需求。
最新评论
本站CDN与莫名CDN同款、亚太CDN、速度还不错,值得推荐。
感谢推荐我们公司产品、有什么活动会第一时间公布!
我在用这类站群服务器、还可以. 用很多年了。