结论:三条路线各有明确工具——WordPress 迁 Ghost 用 Ghost 后台内置的 WordPress(WXR)导入器,迁 Joomla 用 CMS2CMS 直连迁移或 RO CSVI 走 CSV 中转,迁 Drupal 用 wordpress_migrate 模块 + Drupal Migrate API(Drush 执行)。三者的共同前提是先用 WP-CLI 导出一份干净的 WXR(WordPress eXtended RSS,WordPress 官方导出 XML 格式),并且源站在导入完成前必须保持可访问。
迁移前必须做的三项准备是什么
结论:导出 WXR、保持源站在线、记录旧链接结构,这三步没做好,后面任何工具都会出错。
用 WP-CLI 导出比后台「工具 → 导出」稳定,且能分批:wp export --dir=/tmp/wxr/ --filename_format=wxr-{date}.xml;按年份切片用 wp export --post_year=2019 --dir=/tmp/wxr/。上万篇文章一定要切片,否则导入器容易超时中断。导出前停掉会二次改写正文的插件(各类缓存、短代码增强、自动内链),否则迁过去全是残留短代码。另外记住:WordPress 的用户密码是 phpass 哈希,任何迁移工具都不会带过去,用户必须重设密码,这一步要提前在公告里说明。
迁移到 Ghost 用什么工具
结论:优先用 Ghost 自带导入器,几千篇内容 30 分钟内可完成;需要边写边迁就加装官方 WordPress 插件 Ghost。
操作路径:WordPress 后台导出 WXR → 登录 Ghost 后台 Settings → Advanced → Import/Export → 选择 Import from WordPress → 上传 XML。导入器会自动建立 posts、pages、tags、authors,并把文中引用的图片下载到 Ghost 本地,所以源站必须在线。它不导入评论、不导入 WooCommerce 订单、不导入会员,会员需要用 CSV 导入(email 列必填)。
链接不能丢:在 Ghost 后台 Settings → Advanced → Redirects 上传 redirects.json,格式为
[{"from":"^/archives/(.*)$","to":"/post/$1","permanent":true}]
permanent: true 才输出 301,别漏。
迁移到 Joomla 用什么工具
结论:Joomla 没有官方 WP 导入器,商用工具 CMS2CMS 最省事,预算为零就走 CSV + RO CSVI。
CMS2CMS(cms2cms.com 的 Automated Migration)支持 WordPress → Joomla 4/5 直连,靠两边站点安装的连接器通信,支持文章、分类、标签、用户、图片。它提供免费 demo 预演,几篇文章试跑确认字段映射后再付费跑全量,按数据量计价。
免费路线:用 wp post list --post_type=post,page --fields=ID,post_title,post_name,post_content,post_date --format=csv > wp.csv 导出结构化数据,再用 RO CSVI(Joomla 的 CSV/XML 导入导出组件,支持导入 com_content、com_users、com_tags)灌进 Joomla。关键映射:WP post → Joomla 文章(com_content);category → Joomla 分类;tag → Joomla 标签。CSV 必须 UTF-8 无 BOM,正文里不要留换行符之外的裸回车。
迁移到 Drupal 用什么工具
结论:Drupal 用 Migrate API 家族——核心 migrate、贡献模块 migrate_plus、migrate_tools 加 wordpress_migrate(提供 WXR 源插件),全程 Drush 驱动。
composer require drupal/wordpress_migrate
drush en wordpress_migrate migrate_tools -y
drush migrate:status --group=wordpress
drush migrate:import --group=wordpress
该模块把 WXR 里的 post/page 迁成 node:article、node:page,分类迁成 taxonomy 词汇表,用户迁成 user 实体,并支持图片抓取。装之前先核对模块分支与你的核心大版本是否匹配。字段要改动就在 YAML migration 里写 process 映射,这是 Drupal 相对前两者的优势:内容模型能重建,不用硬套旧结构。301 用 Redirect 模块配合 Pathauto 生成,或直接把旧路径写进 redirect 表批量导入。
三套工具怎么选
结论:内容以博客为主、文章量几千、追求最省事选 Ghost;要 ACL 权限、多语言、成熟扩展市场选 Joomla;内容结构复杂、需要自定义字段和多站群选 Drupal。Ghost 迁移成本最低(内置导入器),Drupal 迁移成本最高但可塑性最强,Joomla 处在中间且最依赖付费工具。无论选哪个,迁移完 30 天内盯紧 Search Console 的 404 报告,把漏掉的旧链接补进重定向表,同时提交新 sitemap;再抽查 20 篇长文的内链与图片。遇到具体报错,可以在 GJ 站长论坛的问答版块贴出导入日志,让做过同类迁移的人帮忙看字段映射。