这里的“自动更新栏目”通常有两种理解:

- 定时发布栏目下的文章:这是最常见的需求,设置一个栏目,让它每天早上8点自动发布一篇预存的草稿文章。
- 自动创建新栏目:这个需求比较少见,通常是通过脚本根据某种规则(如读取数据库、API等)来动态生成栏目结构,这个比较复杂,一般需要二次开发。
我将重点讲解第一种,也是最实用的定时发布文章功能,也会简单提一下第二种思路。
核心思路:利用 DedeCMS 的“计划任务”功能
DedeCMS 自带一个非常强大的“计划任务”系统,它可以在你设定的时间点,自动执行一些预设好的操作,发布待审核内容、刷新首页、清理缓存等,我们的目标就是利用这个系统,让它定时去发布指定栏目下的文章。
实现步骤分为两大部分: A. 准备工作:设置好需要自动发布的文章。 B. 核心操作:配置计划任务,让它定时执行发布。
A. 准备工作:设置好需要自动发布的文章
这是最关键的一步,系统不可能凭空生成内容,你必须先把文章准备好,只是把它们的状态设置为“未发布”或“待审核”,然后让计划任务去“激活”它们。
-
撰写文章:
- 登录你的 DedeCMS 后台。
- 进入“[核心]” -> “[内容发布管理]” -> “[添加文档]”。
- 选择你希望实现自动发布的那个栏目。
- 填写文章标题、内容等基本信息。
- 关键设置:在文章编辑页面的下方,找到“状态”选项。
- 选择“仅动态浏览”:这是最推荐的设置,这篇文章在发布前,在网站前台是看不到的,计划任务会将其正式发布,使其变为“生成HTML”并可以被前台用户访问。
- 或者选择“待审核”:如果网站开启了文章审核,你也可以设置为这个状态,计划任务会将其“审核通过并发布”。
-
设置发布时间(可选但推荐):
- 在文章编辑页面,找到“发布时间”选项。
- 你可以手动设置一个未来的时间点,
2025-10-27 08:00:00。 - 重要提示:DedeCMS 的计划任务在执行发布时,会检查文章的“发布时间”,只有当系统时间 >= 文章设定的“发布时间”时,它才会被发布。
- 如果你的计划任务设定在每天8点运行,那么你把文章的“发布时间”也设置成未来的8点,是最稳妥的,这样即使计划任务提前或推后运行一小会儿,也能保证文章在正确的时间点被发布。
-
保存文章:
点击“确定”或“保存”按钮,将这篇文章存为草稿或待审核状态。
重复以上步骤,为你需要自动发布的每一天都准备好一篇文章,为未来一周的每一天都写好一篇文章,并设置好对应的发布时间。
B. 核心操作:配置计划任务
文章已经准备好了,我们需要告诉 DedeCMS 在什么时候去执行发布操作。
-
进入计划任务管理:
在 DedeCMS 后台,找到并点击“[系统]” -> “[计划任务管理]”。
-
添加新的计划任务:
在计划任务列表页面,点击右上角的“[增加新任务]”按钮。
-
填写任务信息:
- 任务名称:给这个任务起一个你容易识别的名字,每日自动发布新闻”。
- 执行程序文件:这是核心!DedeCMS 已经为我们写好了发布文章的程序,你需要填写:
../task/doall.php - 分针:设置任务执行的分钟,如果你想让它每小时的第0分钟执行,就填
0,如果每天只执行一次,这里可以随便填一个数字,0。 - 时钟:设置任务执行的小时,想在每天早上8点执行,就填
8。 - 星期:设置任务执行的星期,想在每天执行,就选
每天,如果只想在周一到周五执行,就勾选对应的天数。 - 是否启用:务必勾选“是”,否则任务不会生效。
- 最大执行时间:可以设置一个值,
60,表示如果任务执行超过60秒,系统会强制终止它,防止脚本卡死。
-
保存任务:
点击“确定”按钮保存。
任务已经创建好了! DedeCMS 会根据你设置的时间(每天早上8点),自动运行 doall.php 这个脚本,这个脚本会扫描所有“仅动态浏览”或“待审核”的文章,如果它们的发布时间已到,就会将其正式发布。
C. 进阶与注意事项
-
如何确保计划任务准时运行?
- DedeCMS 的计划任务依赖于网站的访问量,只有当有用户访问你的网站时,系统才会去检查并执行到期的计划任务。
- 问题:如果你的网站访问量很低,比如一天都没人访问,那么早上8点的任务可能要到中午甚至晚上才有人访问时才被执行。
- 解决方案:
- 方法一(推荐):使用服务器端的定时任务(如 Linux 的
cron或 Windows 的“任务计划程序”),设置一个定时任务,每隔几分钟访问一下 DedeCMS 的计划任务触发文件dede/task.php。curl http://www.yourdomain.com/dede/task.php,这样就能确保任务准时执行。 - 方法二:手动增加网站访问量,比如自己每天固定时间去访问一下首页。
- 方法一(推荐):使用服务器端的定时任务(如 Linux 的
-
自动创建栏目(高级玩法) 这个需求比较复杂,通常不通过计划任务实现,而是通过二次开发。
- 思路:你可以编写一个独立的 PHP 脚本(
auto_create_category.php)。 - 脚本功能:
- 连接你的数据库。
- 根据你预设的逻辑(从一张数据表里读取新栏目的名称、上级栏目、描述等信息)。
- 模拟 DedeCMS 后台添加栏目的过程,直接向
dede_arctype表中插入新的数据。
- 执行方式:将这个脚本放在服务器上,然后通过服务器的
cron任务来定时执行它。注意:这种方式风险较高,如果脚本出错可能导致数据库结构损坏,务必在测试环境充分验证。
- 思路:你可以编写一个独立的 PHP 脚本(
对于绝大多数用户来说,实现 DedeCMS 自动更新栏目的需求,其实就是“定时发布栏目下的文章”。
最佳实践流程:
- 提前准备:为未来一段时间,在目标栏目下写好所有文章,并将状态设置为“仅动态浏览”,同时设定好未来的“发布时间”。
- 后台配置:进入“系统” -> “计划任务管理”,添加一个新任务,执行程序为
../task/doall.php,并设置好你希望的执行时间(如每天8点)。 - 确保执行:为了保证任务准时运行,建议配置服务器端的
cron任务,定时访问dede/task.php文件。
这样,你的 DedeCMS 网站就能像一个真正的“机器人”一样,每天定时为你更新内容了。
