必须同时导出wp_posts和wp_postmeta表,否则丢失自定义字段、SEO配置及页面构建器数据;wp_options存主题插件等关键配置,需一并导出或筛选siteurl等核心项;wp_users与wp_usermeta须同步导出以保用户权限;导出SQL应禁用AUTO_INCREMENT和时间戳,导入前检查关联一致性。
wp_posts 和 wp_postmeta 必须一起导出
只导 wp_posts 表会丢掉自定义字段、seo 插件配置、页面构建器数据——这些全在 wp_postmeta 里,且靠 post_id 关联。漏掉它,恢复后文章可能显示为空白或丢失图片、标题、分类。
- 导出时务必勾选两个表,别信“只备份文章内容”的偷懒说法
- 如果用 phpMyAdmin,进数据库 → 勾选
wp_posts和wp_postmeta→ 导出 → 格式选SQL(不是 CSV) - 命令行更稳:
mysqldump -u user -p dbname wp_posts wp_postmeta > posts_and_meta.sql
wp_options 里藏着主题和插件状态
wp_options 存了站点 URL、活跃主题、启用插件列表、缓存开关等运行态配置。单独导出它没用,但若只恢复 wp_posts 而不恢复它,新环境可能加载错主题、跳转到旧域名、插件全失效。
- 重点关注
option_name为siteurl、home、active_plugins、theme_mods_*的行 - 导出整张表最省事;若只想精简,可用 WHERE 筛:
mysqldump -u user -p dbname wp_options --where="option_name IN ('siteurl','home','active_plugins')" - 注意:某些缓存插件(如 WP Super Cache)会在
wp_options写大量临时值,恢复前建议清空rewrite_rules和以cache_开头的项
用户数据不能只靠 wp_users
wp_users 只存用户名、密码哈希和邮箱;真实权限、角色、个人设置全在 wp_usermeta。缺它,管理员登录后可能变订阅者,或者后台菜单消失。
生产级WordPress REST API集成,用于管理文章、页面、媒体、WooCommerce产品、Elementor内容、SEO元数据、ACF及JetEngine字段
- 必须同步导出
wp_users+wp_usermeta,关联字段是user_id - 导出前确认
wp_usermeta中meta_key含wp_capabilities、wp_user_level、nickname的记录都存在 - 若只迁移部分用户(比如只导管理员),先查 ID:
SELECT ID FROM wp_users WHERE user_login = 'admin';,再按 ID 过滤wp_usermeta
导出 SQL 时忽略 auto-increment 和时间戳
直接导出带 AUTO_INCREMENT 和 CREATE_TIME 的 SQL,在目标库导入容易主键冲突或时间错乱——尤其跨版本迁移或二次导入时。
- phpMyAdmin 导出页勾掉 “添加 AUTO_INCREMENT 值” 和 “添加时间戳”
- 命令行加参数:
--skip-auto-increment --no-create-info(后者避免建表语句干扰已有结构) - 导入前检查 SQL 文件开头是否有
INSERT INTO `wp_posts` VALUES (123, ...)—— 如果 ID 已存在,手动删掉这行或改用REPLACE INTO替代(需提前确认无关键数据覆盖风险)
真正麻烦的是关联一致性:比如 wp_postmeta.post_id 指向的 wp_posts.ID 在目标库不存在,就会变成悬空记录。导出前最好先跑一次 SELECT COUNT(*) FROM wp_postmeta WHERE post_id NOT IN (SELECT ID FROM wp_posts);,有结果就得清理。










