一、批量上传的常见需求
网站迁移、内容初始化、采集入库等场景下,需要一次性导入成百上千篇文章。手动逐篇发布效率极低,DedeCMS提供了多种批量入库方式,需根据数据来源选择合适方案。
二、方法对比
| 方法 | 适用场景 | 难度 | 效率 |
|---|---|---|---|
| 采集功能 | 从其他网站抓取 | 中 | 高 |
| Excel转SQL导入 | 已有结构化数据 | 中 | 高 |
| 自定义PHP脚本 | 灵活定制 | 高 | 极高 |
| 会员投稿 | 多人协作 | 低 | 低 |
| 第三方工具 | 小白用户 | 低 | 中 |
三、方法一:使用织梦采集功能
- 后台 - 采集 - 采集节点管理 - 增加新节点。
- 配置目标URL、列表规则、内容规则。
- 测试采集,确认字段匹配正确。
- 开始采集,数据进入"已采集"列表。
- 导入到对应栏目:勾选 - 导入文章。
- 生成静态页:后台 - 生成 - 一键更新。
适合从外部网站批量抓取内容入库。
四、方法二:Excel转SQL导入
已有Excel/CSV数据时,转换为织梦的SQL插入语句。
1. 准备Excel模板
列字段:标题、作者、来源、发布时间、正文、栏目ID。
2. 转换为SQL
用Excel公式或Python脚本生成INSERT语句:
INSERT INTO dede_archives (typeid, title, writer, source, pubdate, senddate) VALUES
(1, '文章标题1', 'admin', '本站', 1700000000, 1700000000),
(1, '文章标题2', 'admin', '本站', 1700000000, 1700000000);
3. 导入数据库
-- 先插入主表 dede_archives 获取 id
-- 再插入附加表 dede_addonarticle(body字段)
-- 最后更新微表 dede_arctiny
-- 推荐用PHP脚本完整处理三张表关联
五、方法三:自定义PHP脚本(推荐)
使用织梦内置函数入库,自动处理主表、附加表、微表关联。
require_once(dirname(__FILE__).'/include/common.inc.php');
require_once(DEDEINC.'/archives.class.php');
$articles=[
['title'=>'文章1', 'body'=>'内容1', 'typeid'=>1],
['title'=>'文章2', 'body'=>'内容2', 'typeid'=>1],
// ...更多文章
];
foreach($articles as $row){
$arc=new Archives();
$arc->typeid=$row['typeid'];
$arc->title=$row['title'];
$arc->writer='admin';
$arc->source='本站';
$arc->pubdate=time();
$arc->senddate=time();
$arc->body=$row['body'];
$aid=$arc->Save();
echo "插入: {$row['title']} ID:{$aid}\n";
}
脚本放在站点根目录执行,完成后立即删除。
六、方法四:会员批量投稿
开启会员投稿功能,分配账号给内容团队,分批发布。
- 后台 - 系统 - 会员设置 - 开启投稿。
- 设置各栏目允许投稿的会员组。
- 会员登录
/member/投稿。 - 管理员审核后发布。
适合多人协作但量不大的场景。
七、方法五:第三方工具
火车头采集器、八爪鱼等工具支持直接发布到织梦:
- 配置发布接口(dede/login.php、dede/article_add.php)。
- 设置栏目映射与字段对应。
- 批量运行发布任务。
八、批量导入后必做
- 后台 - 生成 - 一键更新网站。
- 更新栏目HTML与文档HTML。
- 更新系统缓存(数据更新 - 重新生成)。
- 检查首页与栏目页文章数是否正确。
- 修复SEO信息(关键词、描述)。
九、注意事项
批量导入前务必备份数据库;导入大量文章时关闭模板缓存与静态生成,导入完成后再批量生成;脚本务必在导入完成后删除,避免被恶意调用。
建议分批导入,每批500-1000条,避免内存溢出;标题与正文注意HTML转义,避免XSS;发布时间错开,模拟自然发布节奏,利于SEO。
十、行动指引
小批量结构化数据推荐Excel转SQL;大批量定制需求推荐PHP脚本调用织梦API;长期内容运营建议搭建采集+审核+发布的标准化流水线,提升效率的同时保障内容质量。