使用后台“批量维护”工具(最推荐、最安全)
这是织梦官方提供的标准方法,通过可视化的界面操作,非常安全,即使对SQL不熟悉也能轻松完成。

(图片来源网络,侵删)
操作步骤:
-
登录织梦后台:使用你的管理员账号登录到织梦CMS后台。
-
进入批量维护工具:
- 在后台左侧菜单栏中,找到 “批量维护” 选项。
- 点击展开,然后选择 “数据库内容替换”。
-
设置替换参数:
(图片来源网络,侵删)- :在这里输入你想要被替换掉的,如果你的旧域名是
http://www.old.com,就输入这个。 - :在这里输入你想要替换成的,你的新域名是
https://www.new.com,就输入这个。 - 替换范围:这是最关键的一步,决定了你要对哪些文章进行操作。
- 选择栏目:点击“选择栏目”,在弹出的窗口中勾选你想要操作的栏目,你可以只选择一个栏目,也可以按住
Ctrl键多选,或者选择“全选”来操作所有栏目。 - 是否包含子栏目:如果你的栏目结构复杂,并且希望同时替换子栏目中的文章,请勾选此项。
- 替换范围选择:这里有两个选项:
- 仅替换文章正文:只替换文章
body字段中的内容,这是最常用的选项。 - 、内容、描述:会同时替换文章的
title(标题)、description(简介) 和body(正文) 字段,请谨慎使用,避免误替换标题。
- 仅替换文章正文:只替换文章
- 选择栏目:点击“选择栏目”,在弹出的窗口中勾选你想要操作的栏目,你可以只选择一个栏目,也可以按住
- :在这里输入你想要被替换掉的,如果你的旧域名是
-
执行替换:
- 所有参数设置完毕后,点击页面底部的 “开始执行” 按钮。
- 系统会弹出一个确认窗口,再次点击“确定”。
- 程序会开始逐篇文章进行检查和替换,并在页面上显示处理进度和成功/失败的数量。
优点:
- 图形化界面:操作简单直观,无需编写代码。
- 安全性高:有明确的确认步骤,不易误操作。
- 范围可控:可以精确指定要操作的栏目。
使用SQL命令执行器(功能更强大,需谨慎)
如果你需要对文章内容进行更复杂的替换,或者方法一无法满足你的需求(例如替换文章中的特定标签属性),那么可以直接在数据库层面进行操作。
⚠️ 重要提醒:
- 备份数据库:在执行任何SQL操作之前,务必备份你的整个数据库!这是防止操作失误导致数据丢失的唯一保障。
- 了解风险:错误的SQL命令可能会破坏你的网站数据,请确保你理解你正在执行的命令。
操作步骤:
-
登录织梦后台:进入后台。
-
进入SQL命令工具:
- 在后台左侧菜单栏中,找到 “系统” 选项。
- 点击展开,然后选择 “SQL命令行工具”。
-
编写并执行SQL语句:
- 在“命令内容”文本框中,输入你的SQL替换语句。
- 点击“查询”或“执行”按钮。
常用SQL替换语句示例:
假设你的文章内容存储在 dede_addonarticle 表的 body 字段中(这是默认的,请确认你的表前缀是否为 dede_)。
示例1:替换文章正文中的文字
将所有文章中的“旧网站”替换为“新官网”。
UPDATE dede_addonarticle SET body = REPLACE(body, '旧网站', '新官网');
示例2:替换文章中的域名(包含http和https)
将所有 http://www.old.com 替换为 https://www.new.com。
UPDATE dede_addonarticle SET body = REPLACE(body, 'http://www.old.com', 'https://www.new.com');
示例3:替换文章中的图片路径
将所有相对路径的图片 images/ 替换为绝对路径的图片 https://www.yourdomain.com/images/。
UPDATE dede_addonarticle SET body = REPLACE(body, 'src="images/', 'src="https://www.yourdomain.com/images/');
示例4:同时替换标题和正文
如果你想同时修改标题 (title) 和正文 (body)。
UPDATE dede_archives a, dede_addonarticle d SET a.title = REPLACE(a.title, '旧词', '新词'), d.body = REPLACE(d.body, '旧词', '新词') WHERE a.id = d.aid;
这个语句通过 aid 关联了文章主表 dede_archives 和文章附加表 dede_addonarticle,实现了跨表替换。
示例5:只在特定栏目下替换
如果你想只在ID为 5 和 10 的栏目下进行替换。
UPDATE dede_addonarticle SET body = REPLACE(body, '旧内容', '新内容') WHERE typeid IN (5, 10);
这里的 typeid 对应的是栏目的ID。
总结与对比
| 特性 | 批量维护工具 | SQL命令工具 |
|---|---|---|
| 易用性 | ⭐⭐⭐⭐⭐ (非常简单) | ⭐⭐ (需要SQL知识) |
| 安全性 | ⭐⭐⭐⭐⭐ (有确认机制) | ⭐ (风险高,需手动备份) |
| 灵活性 | ⭐⭐ (只能替换纯文本) | ⭐⭐⭐⭐⭐ (可进行任何复杂替换) |
| 适用场景 | 日常的、简单的文本替换,如域名、关键词修正。 | 复杂的替换需求,如修改标签属性、跨表替换、条件筛选等。 |
建议:
- 99% 的情况下,请优先使用【方法一:批量维护工具】,它足够强大且安全。
- 只有当你发现方法一无法满足你的特定需求时,再考虑使用【方法二:SQL命令工具】,并且一定要先备份数据库。
希望这个详细的教程能帮助你顺利完成织梦文章内容的批量替换!
