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

下面我将分不同场景,为你提供最全面和详细的修改方法。
通过后台编辑器修改文章内容(最常用)
这是最标准、最安全的方法,适用于日常的文章内容更新。
- 登录后台:使用管理员账号登录你的 DedeCMS 后台。
- 找到文章:
- 方法一(推荐):进入【核心】 -> 【内容维护】 -> 采集】,在顶部可以按标题、关键词等快速搜索文章。
- 方法二:进入【常规】 -> 【所有档案】,在这里可以找到所有已发布的文章。
- 编辑文章:找到你要修改的文章,点击标题或右侧的【编辑】按钮。
- 修改
field.body:- 你会进入文章编辑页面,页面上最大的编辑框(可能是 DedeEditor、KindEditor 等编辑器)就是用来编辑
field.body的。 - 在这里你可以像使用 Word 一样,直接修改文字、图片、格式等。
- 你会进入文章编辑页面,页面上最大的编辑框(可能是 DedeEditor、KindEditor 等编辑器)就是用来编辑
- 更新:修改完成后,点击页面底部的【保存】或【更新】按钮。
优点:
- 安全,不易出错。
- 编辑器功能强大,支持可视化操作。
- 会自动处理图片和附件的上传与路径。
直接在数据库中批量修改(高级操作)
当你需要批量替换内容时(更换域名、修正错别字、修改特定格式),直接操作数据库是最快的方法。

⚠️ 警告:操作数据库有风险,请务必备份数据库!
-
备份数据库:这是最重要的一步!在操作前,请通过 phpMyAdmin 或其他数据库管理工具导出你的
dede_archives表(最好是整个数据库)作为备份。 -
登录数据库管理工具:使用 phpMyAdmin 或其他工具登录你的网站数据库。
-
找到数据表:在左侧列表中找到
dede_archives表。
(图片来源网络,侵删) -
执行 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 存储的内容,只想改变它在前台页面的显示效果,这时就需要修改模板文件。
-
找到模板文件:
- 进入【模板】 -> 【默认模板管理】。
- 根据你的网站栏目和文章类型,找到对应的文章内容页模板,通常是
article_article.htm。 - 如果你修改的是列表页或首页的摘要,则对应
list_*.htm或index.htm。
-
定位
field.body:- 在模板文件中,文章内容通常通过
{dede:field.body/}这个标签来调用。
- 在模板文件中,文章内容通常通过
-
修改显示逻辑:
-
加样式:你可以给
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中包含固定的广告代码(比如一个iframe或div),你可以通过正则表达式在模板中移除它,这需要一定的 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 的默认行为(通过修改程序文件)
这是一个更底层的修改,会影响整个系统,你想修改编辑器的默认配置,或者改变文章内容保存前的一些处理逻辑。
-
找到相关文件:
- 编辑器初始化:通常在
/include/ckeditor/或/include/editsoft/目录下,找到编辑器的配置文件(如config.js)。 - 内容处理钩子:在
/include/helpers/目录下,有一些处理文章内容的函数,如archive.helper.php,在这里可以找到内容在入库前被处理的逻辑。
- 编辑器初始化:通常在
-
修改代码:
- 修改编辑器配置可以改变默认的字体、颜色、上传按钮等。
- 修改
archive.helper.php中的函数可以增加内容过滤、关键词替换等功能。
⚠️ 强烈警告:直接修改核心程序文件,在下次 DedeCMS 升级时你的修改会被覆盖,修改前请务必备份原文件,并做好修改记录。
总结与最佳实践
| 修改需求 | 推荐方法 | 优点 | 缺点 |
|---|---|---|---|
| 修改单篇文章内容 | 后台编辑器 | 安全、直观、功能全 | 效率低,不适合批量操作 |
| 批量替换/修改内容 | 直接操作数据库 | 效率极高,功能强大 | 有风险,需备份数据库,需要 SQL 知识 |
| 改变前台显示样式/摘要 | 修改模板文件 | 灵活,不影响数据 | 需要了解模板语法和 HTML/CSS |
| 修改编辑器默认行为 | 修改程序文件 | 从根本上改变系统行为 | 升级会覆盖,有风险,需要开发知识 |
给你的建议:
- 日常修改:老老实实用后台编辑器。
- 网站迁移/大规模修正:在备份数据库后,使用数据库 SQL 语句。
- 优化页面布局:通过修改模板来实现,这是最规范的做法。
- 除非必要,否则不要轻易修改核心程序文件。
希望这份详细的指南能帮助你顺利地修改 DedeCMS 的 field.body!
