本文约 2,270 字,预计阅读 6 分钟。文中命令与配置均经过实测,可直接参考执行。
引言:只想要文章内容,不要整站数据时怎么办
整站迁移(打包文件 + 导数据库)适合换服务器。但如果你的需求是:
- 从旧站把 300 篇文章搬进新站,但主题、设置、插件都不动;
- 把某个自定义文章类型(比如产品)单独导出给另一个站点;
- 定期给编辑导出一批草稿做离线审阅;
整站迁移就太重了。这时候应该用 WXR 导出——它只搬内容,不搬配置。
原理分析:WXR 到底是什么
WXR 是 WordPress 自己定义的 XML 格式,扩展自 RSS 2.0。一个 .xml 文件里包含:
- 文章、页面、自定义文章类型的正文与元数据;
- 分类、标签、自定义分类法;
- 评论;
- 附件的URL 引用(注意:不是文件本身)。
关键点:WXR 不包含主题设置、插件配置、菜单分配、小工具、用户信息(导入时可映射)、站点选项。它纯粹是”内容”。
附件默认只导出 URL,导入时 WordPress 会尝试从原站下载图片。原站下线了就得手工处理。
保姆级实操
第一步:导出全部内容
wp export --dir=/tmp/exports
生成类似 mimangfei.2026-10-10.000.xml 的文件。
第二步:按条件导出(常用)
# 只导出已发布文章
wp export --dir=/tmp/exports --post_type=post --status=publish
# 只导出页面
wp export --dir=/tmp/exports --post_type=page
# 只导出某个自定义文章类型
wp export --dir=/tmp/exports --post_type=product
# 按分类导出(用 term ID)
wp export --dir=/tmp/exports --category=12
# 按时间范围导出
wp export --dir=/tmp/exports --start_date=2025-01-01 --end_date=2025-12-31
# 按作者导出
wp export --dir=/tmp/exports --author=3
第三步:控制附件与内容
# 不导出附件引用,只导正文
wp export --dir=/tmp/exports --skip_comments --max_num_comments=0
# 跳过评论
wp export --dir=/tmp/exports --skip_comments
wp export 没有直接的”不导附件”开关,但导入时可以不勾选下载附件。
第四步:导入
需要先安装官方导入器插件:
wp plugin install wordpress-importer --activate
wp import /tmp/exports/mimangfei.2026-10-10.000.xml --authors=create
--authors 三个取值:
create:为新作者创建账号(默认行为);skip:跳过作者不存在的内容;mapping.csv:用 CSV 做作者映射。
作者映射 CSV 格式:
old_login,new_login
zhangsan,editor1
lisi,editor2
第五步:导入后处理
wp rewrite flush
wp cache flush
wp media regenerate --yes # 若图片已下载但尺寸不对
第六步:手工处理附件
如果原站已下线,导入会报”无法下载附件”。解决方式:
- 手工把
wp-content/uploads整个目录拷贝到新站对应位置; - 再用
wp search-replace替换正文里的旧域名为新域名; - 用插件(如 Add From Server)把文件扫描进媒体库,或直接写脚本修复
wp_postmeta的_wp_attached_file。
常见踩坑与失败案例
- 导入超时 / 内存溢出 —— 大文件导入常卡在 PHP 限制。解决办法:调大
memory_limit与max_execution_time,或把 XML 按年份拆分后分批导入。 - 导入后文章数对不上 —— 常见原因:作者不存在且用了
skip;或分类法在目标站不存在。用--authors=create重试。 - 案例:迁移后所有图片都显示”附件不存在”。原因是 WXR 只有 URL 引用,而原站在导入前已经关站,图片下载全部失败。最终靠手工拷贝 uploads 目录 + search-replace 解决。
- 自定义文章类型导入后前台 404 —— 目标站没有注册该 CPT。要先装对应插件或主题,再导入。
- 导入产生重复内容 —— 重复导入同一文件会创建副本。导入前先看已有文章数,或先清空目标内容。
- XML 里含非法字符导致解析失败 —— 文章里如果有控制字符,导出的 XML 可能不合法。可用
wp search-replace先清理,或改用数据库级迁移。
总结
WXR 导出导入适合”只要内容”的迁移场景,优势是干净(不带旧站配置)、可控(可按类型/日期/作者筛选)。它的边界也很清楚:不含设置、不含真实文件、依赖原站可访问。最佳实践是”WXR + uploads 目录手工拷贝 + search-replace 修域名”三件套,比起整站打包,这种方式迁移后的站点更干净,也更容易排查问题。
