$map = [3 => 7, 5 => 9]; // 旧作者 => 新作者 $new_author = $map[$old_author] ?? 1; wp_update_post(['ID' => $new_id, 'post_author' => $new_author]);
把 A 站 500 篇文章导到 B 站,导入后作者全部变成 admin,分类只剩“未分类”,标签也丢了 80%。这类现象通常不是突然出现的,往前翻半天日志能看到苗头。
追下去是这么回事:导出文件里的 author_id 和 term_id 是 A 站的编号,B 站没有对应记录,导入器直接回退到默认值。迁移工具没有建映射表。
「子站内容迁移映射」改完先别急着全量,挑一台机器放半天,真有问题这段时间就能看出来。同类问题如果隔一段时间又出现,多半是某个定时任务或重启流程把改动冲掉了。
把这次用到的命令存进笔记,比记住结论有用,换个环境还能照着走。改完隔一天再看一次,当场正常不代表能稳住。
测试环境和线上的差别,往往就在版本号和那几行被忽略的配置上。
处理上按这个顺序:先导出两边的作者和分类对照表;建立旧 ID 到新 ID 的映射;导入时按映射改写 author 和 term_id。
确认没问题再收工,B 站 500 篇文章数量一致,抽 10 篇作者和分类都对得上。
