dede field.body怎么修改?

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

field.body 是 DedeCMS 中用于存储文章主要内容的核心字段,通常对应数据库中的 dede_archives 表的 body 字段,修改它涉及到后台编辑、直接修改数据库、修改模板以及处理图片/附件路径等多个层面。

dede field.body 修改
(图片来源网络,侵删)

下面我将分不同场景,为你提供最全面和详细的修改方法。


通过后台编辑器修改文章内容(最常用)

这是最标准、最安全的方法,适用于日常的文章内容更新。

  1. 登录后台:使用管理员账号登录你的 DedeCMS 后台。
  2. 找到文章
    • 方法一(推荐):进入【核心】 -> 【内容维护】 -> 采集】,在顶部可以按标题、关键词等快速搜索文章。
    • 方法二:进入【常规】 -> 【所有档案】,在这里可以找到所有已发布的文章。
  3. 编辑文章:找到你要修改的文章,点击标题或右侧的【编辑】按钮。
  4. 修改 field.body
    • 你会进入文章编辑页面,页面上最大的编辑框(可能是 DedeEditor、KindEditor 等编辑器)就是用来编辑 field.body 的。
    • 在这里你可以像使用 Word 一样,直接修改文字、图片、格式等。
  5. 更新:修改完成后,点击页面底部的【保存】或【更新】按钮。

优点

  • 安全,不易出错。
  • 编辑器功能强大,支持可视化操作。
  • 会自动处理图片和附件的上传与路径。

直接在数据库中批量修改(高级操作)

当你需要批量替换内容时(更换域名、修正错别字、修改特定格式),直接操作数据库是最快的方法。

dede field.body 修改
(图片来源网络,侵删)

⚠️ 警告:操作数据库有风险,请务必备份数据库!

  1. 备份数据库:这是最重要的一步!在操作前,请通过 phpMyAdmin 或其他数据库管理工具导出你的 dede_archives 表(最好是整个数据库)作为备份。

  2. 登录数据库管理工具:使用 phpMyAdmin 或其他工具登录你的网站数据库。

  3. 找到数据表:在左侧列表中找到 dede_archives 表。

    dede field.body 修改
    (图片来源网络,侵删)
  4. 执行 SQL 语句

    • 使用 SQL 查询窗口(推荐)

      • 点击 dede_archives 表,然后选择“SQL”选项卡。
      • 在输入框中输入你的修改语句,然后点击“执行”。
    • 浏览表,直接编辑

      • 点击“浏览”选项卡,查看所有文章记录。
      • 找到你想要修改的文章行,点击右侧的【编辑】按钮。
      • body 字段中,你会看到一大段 HTML 代码,直接在这里修改,然后点击【执行】。

常用 SQL 修改示例:

示例 1:批量替换文章中的旧域名 假设你的网站从 old.com 换到了 new.com,需要把所有文章内容里的 old.com 替换掉。

UPDATE dede_archives SET body = REPLACE(body, 'old.com', 'new.com');

示例 2:批量添加或修改文章开头的文字 想在所有文章开头加上“作者:张三”。

UPDATE dede_archives SET body = CONCAT('<p>作者:张三</p><br>', body);
  • CONCAT() 函数用于连接字符串。
  • <p><br> 是为了格式更美观。

示例 3:批量移除文章中的某个特定 div 假设你发现所有文章都被一个无用的 <div class="ad-box">...</div> 包裹,需要移除它。

UPDATE dede_archives SET body = REPLACE(body, '<div class="ad-box">', '');
UPDATE dede_archives SET body = REPLACE(body, '</div>', '');
  • 注意:可能需要分两次执行,分别替换开始和结束标签。

修改文章内容的显示方式(通过模板)

有时候你不想改变 field.body 存储的内容,只想改变它在前台页面的显示效果,这时就需要修改模板文件。

  1. 找到模板文件

    • 进入【模板】 -> 【默认模板管理】
    • 根据你的网站栏目和文章类型,找到对应的文章内容页模板,通常是 article_article.htm
    • 如果你修改的是列表页或首页的摘要,则对应 list_*.htmindex.htm
  2. 定位 field.body

    • 在模板文件中,文章内容通常通过 {dede:field.body/} 这个标签来调用。
  3. 修改显示逻辑

    • 加样式:你可以给 field.body 外面包裹一个 div 并添加 CSS 类,以便在前台用 CSS 控制样式。

      <div class="article-content">
          {dede:field.body/}
      </div>

      然后在你的 CSS 文件(如 /static/css/style.css)中定义 .article-content 的样式。

    • 摘要:在列表页,你通常不希望显示全文,这时可以使用 cn_substr 函数。

      {dede:field.body function='cn_substr(@me, 200)'/}

      这段代码的意思是:截取 field.body 的前 200 个字符作为摘要。

    • 中的广告代码field.body 中包含固定的广告代码(比如一个 iframediv),你可以通过正则表达式在模板中移除它,这需要一定的 PHP 和正则基础。

      {dede:field.body runphp='yes'}
          $content = @me;
          // 使用正则表达式移除所有 class 为 "my-ad" 的 div
          $pattern = '/<div\s+class="my-ad"[^>]*>.*?<\/div>/is';
          @me = preg_replace($pattern, '', $content);
      {/dede:field.body}

      注意runphp='yes' 会在模板中执行 PHP 代码,可能会带来安全风险,请谨慎使用。


修改 field.body 的默认行为(通过修改程序文件)

这是一个更底层的修改,会影响整个系统,你想修改编辑器的默认配置,或者改变文章内容保存前的一些处理逻辑。

  1. 找到相关文件

    • 编辑器初始化:通常在 /include/ckeditor//include/editsoft/ 目录下,找到编辑器的配置文件(如 config.js)。
    • 内容处理钩子:在 /include/helpers/ 目录下,有一些处理文章内容的函数,如 archive.helper.php,在这里可以找到内容在入库前被处理的逻辑。
  2. 修改代码

    • 修改编辑器配置可以改变默认的字体、颜色、上传按钮等。
    • 修改 archive.helper.php 中的函数可以增加内容过滤、关键词替换等功能。

⚠️ 强烈警告:直接修改核心程序文件,在下次 DedeCMS 升级时你的修改会被覆盖,修改前请务必备份原文件,并做好修改记录。


总结与最佳实践

修改需求 推荐方法 优点 缺点
修改单篇文章内容 后台编辑器 安全、直观、功能全 效率低,不适合批量操作
批量替换/修改内容 直接操作数据库 效率极高,功能强大 有风险,需备份数据库,需要 SQL 知识
改变前台显示样式/摘要 修改模板文件 灵活,不影响数据 需要了解模板语法和 HTML/CSS
修改编辑器默认行为 修改程序文件 从根本上改变系统行为 升级会覆盖,有风险,需要开发知识

给你的建议

  • 日常修改:老老实实用后台编辑器
  • 网站迁移/大规模修正:在备份数据库后,使用数据库 SQL 语句
  • 优化页面布局:通过修改模板来实现,这是最规范的做法。
  • 除非必要,否则不要轻易修改核心程序文件

希望这份详细的指南能帮助你顺利地修改 DedeCMS 的 field.body

-- 展开阅读全文 --
头像
dede global.cfg配置中QQ号如何设置?
« 上一篇 12-11
C语言函数返回值类型由什么决定?
下一篇 » 12-11

相关文章

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

目录[+]