dede 自动更新栏目

99ANYc3cd6
预计阅读时长 10 分钟
位置: 首页 DEDE建站 正文

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

dede 自动更新栏目
(图片来源网络,侵删)
  1. 定时发布栏目下的文章:这是最常见的需求,设置一个栏目,让它每天早上8点自动发布一篇预存的草稿文章。
  2. 自动创建新栏目:这个需求比较少见,通常是通过脚本根据某种规则(如读取数据库、API等)来动态生成栏目结构,这个比较复杂,一般需要二次开发。

我将重点讲解第一种,也是最实用的定时发布文章功能,也会简单提一下第二种思路。


核心思路:利用 DedeCMS 的“计划任务”功能

DedeCMS 自带一个非常强大的“计划任务”系统,它可以在你设定的时间点,自动执行一些预设好的操作,发布待审核内容、刷新首页、清理缓存等,我们的目标就是利用这个系统,让它定时去发布指定栏目下的文章。

实现步骤分为两大部分: A. 准备工作:设置好需要自动发布的文章。 B. 核心操作:配置计划任务,让它定时执行发布。


A. 准备工作:设置好需要自动发布的文章

这是最关键的一步,系统不可能凭空生成内容,你必须先把文章准备好,只是把它们的状态设置为“未发布”或“待审核”,然后让计划任务去“激活”它们。

  1. 撰写文章

    • 登录你的 DedeCMS 后台。
    • 进入“[核心]” -> “[内容发布管理]” -> “[添加文档]”。
    • 选择你希望实现自动发布的那个栏目
    • 填写文章标题、内容等基本信息。
    • 关键设置:在文章编辑页面的下方,找到“状态”选项。
      • 选择“仅动态浏览”:这是最推荐的设置,这篇文章在发布前,在网站前台是看不到的,计划任务会将其正式发布,使其变为“生成HTML”并可以被前台用户访问。
      • 或者选择“待审核”:如果网站开启了文章审核,你也可以设置为这个状态,计划任务会将其“审核通过并发布”。
  2. 设置发布时间(可选但推荐)

    • 在文章编辑页面,找到“发布时间”选项。
    • 你可以手动设置一个未来的时间点,2025-10-27 08:00:00
    • 重要提示:DedeCMS 的计划任务在执行发布时,会检查文章的“发布时间”,只有当系统时间 >= 文章设定的“发布时间”时,它才会被发布。
    • 如果你的计划任务设定在每天8点运行,那么你把文章的“发布时间”也设置成未来的8点,是最稳妥的,这样即使计划任务提前或推后运行一小会儿,也能保证文章在正确的时间点被发布。
  3. 保存文章

    点击“确定”或“保存”按钮,将这篇文章存为草稿或待审核状态。

重复以上步骤,为你需要自动发布的每一天都准备好一篇文章,为未来一周的每一天都写好一篇文章,并设置好对应的发布时间。


B. 核心操作:配置计划任务

文章已经准备好了,我们需要告诉 DedeCMS 在什么时候去执行发布操作。

  1. 进入计划任务管理

    在 DedeCMS 后台,找到并点击“[系统]” -> “[计划任务管理]”。

  2. 添加新的计划任务

    在计划任务列表页面,点击右上角的“[增加新任务]”按钮。

  3. 填写任务信息

    • 任务名称:给这个任务起一个你容易识别的名字,每日自动发布新闻”。
    • 执行程序文件:这是核心!DedeCMS 已经为我们写好了发布文章的程序,你需要填写:../task/doall.php
    • 分针:设置任务执行的分钟,如果你想让它每小时的第0分钟执行,就填 0,如果每天只执行一次,这里可以随便填一个数字,0
    • 时钟:设置任务执行的小时,想在每天早上8点执行,就填 8
    • 星期:设置任务执行的星期,想在每天执行,就选 每天,如果只想在周一到周五执行,就勾选对应的天数。
    • 是否启用:务必勾选“是”,否则任务不会生效。
    • 最大执行时间:可以设置一个值,60,表示如果任务执行超过60秒,系统会强制终止它,防止脚本卡死。
  4. 保存任务

    点击“确定”按钮保存。

任务已经创建好了! DedeCMS 会根据你设置的时间(每天早上8点),自动运行 doall.php 这个脚本,这个脚本会扫描所有“仅动态浏览”或“待审核”的文章,如果它们的发布时间已到,就会将其正式发布。


C. 进阶与注意事项

  1. 如何确保计划任务准时运行?

    • DedeCMS 的计划任务依赖于网站的访问量,只有当有用户访问你的网站时,系统才会去检查并执行到期的计划任务。
    • 问题:如果你的网站访问量很低,比如一天都没人访问,那么早上8点的任务可能要到中午甚至晚上才有人访问时才被执行。
    • 解决方案
      • 方法一(推荐):使用服务器端的定时任务(如 Linux 的 cron 或 Windows 的“任务计划程序”),设置一个定时任务,每隔几分钟访问一下 DedeCMS 的计划任务触发文件 dede/task.phpcurl http://www.yourdomain.com/dede/task.php,这样就能确保任务准时执行。
      • 方法二:手动增加网站访问量,比如自己每天固定时间去访问一下首页。
  2. 自动创建栏目(高级玩法) 这个需求比较复杂,通常不通过计划任务实现,而是通过二次开发。

    • 思路:你可以编写一个独立的 PHP 脚本(auto_create_category.php)。
    • 脚本功能
      1. 连接你的数据库。
      2. 根据你预设的逻辑(从一张数据表里读取新栏目的名称、上级栏目、描述等信息)。
      3. 模拟 DedeCMS 后台添加栏目的过程,直接向 dede_arctype 表中插入新的数据。
    • 执行方式:将这个脚本放在服务器上,然后通过服务器的 cron 任务来定时执行它。注意:这种方式风险较高,如果脚本出错可能导致数据库结构损坏,务必在测试环境充分验证。

对于绝大多数用户来说,实现 DedeCMS 自动更新栏目的需求,其实就是“定时发布栏目下的文章”

最佳实践流程

  1. 提前准备:为未来一段时间,在目标栏目下写好所有文章,并将状态设置为“仅动态浏览”,同时设定好未来的“发布时间”。
  2. 后台配置:进入“系统” -> “计划任务管理”,添加一个新任务,执行程序为 ../task/doall.php,并设置好你希望的执行时间(如每天8点)。
  3. 确保执行:为了保证任务准时运行,建议配置服务器端的 cron 任务,定时访问 dede/task.php 文件。

这样,你的 DedeCMS 网站就能像一个真正的“机器人”一样,每天定时为你更新内容了。

-- 展开阅读全文 --
头像
织梦如何添加文章列表
« 上一篇 03-28
dede文章内容空白是什么原因导致的?
下一篇 » 03-28

相关文章

取消
微信二维码
支付宝二维码

目录[+]