dedecms怎么批量上传文章

一、批量上传的常见需求

网站迁移、内容初始化、采集入库等场景下,需要一次性导入成百上千篇文章。手动逐篇发布效率极低,DedeCMS提供了多种批量入库方式,需根据数据来源选择合适方案。

二、方法对比

方法适用场景难度效率
采集功能从其他网站抓取
Excel转SQL导入已有结构化数据
自定义PHP脚本灵活定制极高
会员投稿多人协作
第三方工具小白用户

三、方法一:使用织梦采集功能

  1. 后台 - 采集 - 采集节点管理 - 增加新节点。
  2. 配置目标URL、列表规则、内容规则。
  3. 测试采集,确认字段匹配正确。
  4. 开始采集,数据进入"已采集"列表。
  5. 导入到对应栏目:勾选 - 导入文章。
  6. 生成静态页:后台 - 生成 - 一键更新。

适合从外部网站批量抓取内容入库。

四、方法二: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";
}

脚本放在站点根目录执行,完成后立即删除。

六、方法四:会员批量投稿

开启会员投稿功能,分配账号给内容团队,分批发布。

  1. 后台 - 系统 - 会员设置 - 开启投稿。
  2. 设置各栏目允许投稿的会员组。
  3. 会员登录 /member/ 投稿。
  4. 管理员审核后发布。

适合多人协作但量不大的场景。

七、方法五:第三方工具

火车头采集器、八爪鱼等工具支持直接发布到织梦:

  1. 配置发布接口(dede/login.php、dede/article_add.php)。
  2. 设置栏目映射与字段对应。
  3. 批量运行发布任务。

八、批量导入后必做

九、注意事项

批量导入前务必备份数据库;导入大量文章时关闭模板缓存与静态生成,导入完成后再批量生成;脚本务必在导入完成后删除,避免被恶意调用。
建议分批导入,每批500-1000条,避免内存溢出;标题与正文注意HTML转义,避免XSS;发布时间错开,模拟自然发布节奏,利于SEO。

十、行动指引

小批量结构化数据推荐Excel转SQL;大批量定制需求推荐PHP脚本调用织梦API;长期内容运营建议搭建采集+审核+发布的标准化流水线,提升效率的同时保障内容质量。