You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将非WordPress博客迁移至WordPress平台

嘿,这个迁移需求我之前帮不少开发者处理过,一步步来其实没那么复杂,咱们分模块拆解,尽量减少手动工作量:

一、文章内容与元数据的迁移(无需手动复制)

直接把旧博客表导入WordPress数据库不可行,因为WordPress的文章表(wp_posts)和元数据表(wp_postmeta)有自己的结构规则,直接导入会导致数据不兼容。推荐两种更靠谱的方式:

方法1:自定义PHP脚本批量导入

这是最灵活的方式,适合有一定开发能力的情况:

  • 先同时连接旧数据库和WordPress的数据库
  • 遍历旧博客表的每一篇文章:
    • 把旧文章的标题、内容、发布时间对应插入到wp_posts表,注意post_type设为post,post_status设为publish(或者draft按需调整)
    • 把旧文章的元数据(比如作者ID、自定义字段)插入到wp_postmeta表,关联对应的post_id
  • 示例伪代码参考:
// 连接旧数据库
$oldDb = new mysqli('旧数据库地址', '用户名', '密码', '旧库名');
// 连接WordPress数据库
$wpDb = new mysqli('WP数据库地址', '用户名', '密码', 'WP库名');

// 查询旧文章列表
$oldPosts = $oldDb->query("SELECT id, title, content, created_at, author_id FROM old_blog_posts");

while ($post = $oldPosts->fetch_assoc()) {
    // 插入wp_posts表,注意转义特殊字符避免SQL注入
    $wpDb->query("INSERT INTO wp_posts (post_title, post_content, post_date, post_author, post_status, post_type) 
                  VALUES ('" . $wpDb->real_escape_string($post['title']) . "', 
                          '" . $wpDb->real_escape_string($post['content']) . "', 
                          '" . $post['created_at'] . "', 
                          " . $post['author_id'] . ", 
                          'publish', 
                          'post')");
    $newPostId = $wpDb->insert_id;
    // 插入自定义元数据(比如记录旧文章ID,方便后续排查)
    $wpDb->query("INSERT INTO wp_postmeta (post_id, meta_key, meta_value) 
                  VALUES ($newPostId, 'old_post_id', " . $post['id'] . ")");
}
  • 提示:如果熟悉WordPress开发,用WordPress自带的$wpdb类操作会更安全,还能自动处理表前缀。

方法2:用WordPress的CSV导入工具

如果你不想写代码,这个零开发成本的方式更友好:

  • 把旧博客表导出为CSV文件,包含标题、内容、发布时间、作者、分类这些核心字段
  • 在WordPress后台搜索安装官方导入插件,选择CSV导入选项
  • 按照提示把CSV里的字段和WordPress的文章字段一一对应,就能批量导入文章和基础元数据
二、图片的迁移(自动批量处理,告别手动复制)

图片的处理分两步:迁移文件 + 更新文章里的图片链接:

  1. 迁移图片文件

    • 如果旧图片存在文件系统里,直接把旧网站的图片目录(比如/old-blog/uploads/)整个复制到WordPress的wp-content/uploads/目录下,也可以新建子目录(比如/wp-content/uploads/old-imported/)单独存放
    • 如果旧图片是存储在数据库的二进制数据里,需要先写脚本把这些数据导出为图片文件,再放到WordPress的uploads目录
  2. 批量更新文章里的图片链接

    • 用自定义脚本导入的话,可以在插入文章内容时,批量替换旧图片链接为新路径。比如把http://old-site.com/uploads/1.jpg替换成http://new-wp-site.com/wp-content/uploads/old-imported/1.jpg
    • 用CSV导入的话,可以先在CSV里批量替换链接,或者导入后用SQL语句批量更新:
      UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://old-site.com/uploads/', 'http://new-wp-site.com/wp-content/uploads/old-imported/');
      
    • 想要让这些图片纳入WordPress媒体库管理,可以用插件扫描uploads目录里的图片,批量添加到媒体库,这样后续就能在编辑器里直接编辑这些图片了
三、关联文章(分类、标签、相关推荐)的迁移
  • 分类/标签:先在WordPress后台创建和旧博客对应的分类、标签,然后用脚本或SQL把旧文章的分类/标签映射到WordPress的wp_term_relationships、wp_term_taxonomy表;如果用CSV导入,直接在CSV里指定分类/标签字段即可
  • 相关文章:如果旧博客有手动设置的相关文章,先把旧文章ID和新文章ID的对应关系整理成映射表,再用脚本批量添加到wp_postmeta里(比如设置_related_posts元字段),后续用相关文章插件读取这个字段就能正常显示
重要注意事项
  • 先在测试环境完成整个迁移流程,确认数据完整、格式正常后,再迁移到生产环境
  • 迁移前一定要备份旧网站的数据库和文件,以及新WordPress的数据库,避免数据丢失
  • 如果旧文章里有特殊格式(比如自定义HTML、私有短代码),迁移后要抽查几篇文章,确认格式是否正常,必要时做批量替换调整

内容的提问来源于stack exchange,提问作者Rost

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 10:15:51