dede审核后更新,栏目页首页如何同步?

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

核心概念理解

在开始操作前,我们先理解 Dedecms 的工作原理:

审核后 更新 栏目页 首页 dede
(图片来源网络,侵删)
  1. 内容审核:当您在后台发布或修改文章后,文章的默认状态是“待审核”,只有审核通过后,文章才会被正式发布到前台。
  2. 数据表更新:审核文章时,Dede 会更新 dede_archives(文章主表)、dede_arctiny(文章微表)等数据表中的 arcrank 字段(文章状态),将其从 -1(待审核)变为 0(正常)。
  3. 页面生成/更新:Dede 默认是生成静态HTML页面的,首页、栏目页、文章页等都是独立的 .html 文件,当有新内容或内容状态改变时,这些页面的信息并不会自动更新,需要您手动触发“更新”操作,让 Dedecms 重新生成这些 HTML 文件。

“审核后更新”的完整逻辑是: 审核文章(数据生效) -> 重新生成相关页面(页面生效)


后台手动更新(最常用、最安全)

这是最标准、最推荐的方法,适合日常的内容维护。

第一步:审核文章

  1. 登录您的 Dedecms 后台。
  2. 在左侧菜单栏中,找到 “核心” -> “内容维护” -> “审核管理”
  3. 在审核管理页面,您会看到所有待审核的文章列表。
  4. 勾选您需要审核的文章,然后点击页面顶部的 “审核” 按钮。
  5. 在弹出的确认框中点击“确定”,文章的状态已变为“正常”,数据已生效。

第二步:更新栏目页和首页

审核后 更新 栏目页 首页 dede
(图片来源网络,侵删)

审核完成后,前台用户可能还看不到最新内容,因为页面还是旧的,现在需要重新生成页面。

  1. 在后台左侧菜单栏中,找到 “生成” -> “更新主页/栏目”
  2. 进入更新页面后,您会看到多个选项:
    • 主页更新:点击“更新主页”,Dede 会重新生成您的首页 index.html(推荐每次都执行)
    • 栏目更新
      • 选择栏目: 您可以选择“所有栏目”,也可以只选择您刚刚更新了文章的那个或几个特定栏目,选择特定栏目可以节省时间。
      • 更新选项: 勾选 “选择栏目下所有子栏目” 是一个好习惯,这样可以一并更新其子栏目页。
      • 点击“开始生成”。
    • 高级选项:通常保持默认即可。

第三步:检查结果

更新完成后,Dede 会提示“成功生成X个页面”,您可以清空浏览器缓存,然后访问您的首页和对应栏目页,就能看到最新审核通过的文章了。


一键更新(适合批量操作)

如果您一次性审核了大量文章,可以使用这个功能来更新全站。

审核后 更新 栏目页 首页 dede
(图片来源网络,侵删)
  1. 在后台左侧菜单栏中,找到 “生成” -> “一键更新网站”
  2. 在这个页面,您可以设置更新的范围和方式:
    • 起始ID终止ID:可以指定只更新某个范围内的页面,适合大型网站。
    • 栏目选择:同样可以选择更新所有栏目或指定栏目。
    • 页面类型:可以勾选“主页”、“栏目”、“列表”、“文档”等,通常我们至少需要勾选“主页”和“栏目”。
  3. 设置好后,点击页面底部的 “开始生成” 按钮。

注意:此方法会更新所有勾选了的页面,如果网站很大,可能会比较耗时。


自动更新(高级技巧,适合有开发能力的用户)

对于需要频繁更新或希望流程更自动化的网站,可以通过修改模板文件来实现。

原理:在文章审核通过的页面,加入一段自动生成首页和栏目页的代码。

操作步骤

  1. 找到处理审核操作的PHP文件,通常是 /dede/archives_do.php

  2. 在这个文件中,找到处理 checkArchives (审核文章) 动作的代码段(大约在第150行左右)。

  3. 在执行完审核操作后($dsql->ExecuteNoneQuery($upquery); 这行之后),添加以下代码:

    // 在审核成功后,添加以下代码以自动更新首页和当前栏目页
    // 引入DEDE目录的公共文件
    require_once(DEDEINC.'/arc.partview.class.php');
    // 更新首页
    $home = new PartView();
    $home->SetTemplet(DEDETEMPLATE.'/index.htm');
    $home->Display();
    // 更新当前文章所在的栏目页
    $typeid = $arcRow['typeid']; // 获取文章的栏目ID
    $channelid = $arcRow['channel']; // 获取文章模型ID
    $tj = new PartView();
    $tj->SetTemplet(DEDETEMPLATE.'/list_'.$typeid.'.htm'); // 假设栏目模板是 list_xxx.htm
    $tj->Display();
    // 或者使用更通用的方法更新所有栏目(可能会很慢,慎用)
    // $arc = new Archives($aid);
    // $arc->MakeHtml();
    // $arc->Close();
  4. 保存文件。

效果:当您在后台审核任何一篇文章时,系统会自动在后台重新生成首页和该文章所属的栏目页,无需您再手动点击“更新”按钮。

⚠️ 警告

  • 此方法需要您具备一定的PHP代码修改能力。
  • 修改核心文件前,务必备份原文件,以防出错导致网站无法正常运行。
  • 自动更新可能会增加服务器负担,对于流量巨大的网站需谨慎使用。

总结与最佳实践

场景 推荐方法 优点 缺点
日常少量内容更新 后台手动更新 操作简单、直观、安全,可控性强。 需要手动执行两步。
批量审核大量文章 一键更新网站 效率高,可以一次性更新全站或指定范围。 耗时较长,可能影响服务器性能。
追求自动化、频繁更新 自动更新 完全自动化,提升工作效率。 需要技术能力,有修改核心文件的风险。

给您的建议: 对于绝大多数 Dedecms 用户,熟练掌握和使用【方法一】就足够了,它是最稳定、最可靠的方式,只有在您的内容更新频率非常高,且对技术有信心的情况下,才考虑尝试【方法三】。

-- 展开阅读全文 --
头像
dede loop支持分页吗?如何实现?
« 上一篇 昨天
C语言中char运算符如何操作字符?
下一篇 » 昨天

相关文章

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

目录[+]