一些情况下,迁移完 WordPress 站点后,换上新域名,访问时发现有很多问题。例如旧文章中媒体文件地址都是旧域名(更改 WordPress 后台链接选项不会更改媒体地址),图片全都寄光光。
这个时候,只需要将所有文章中旧内容中的旧域名替换成新域名,就能解决很多问题了。
例如,我的博客原来是 yang1120.club ,现在迁移到 blog.yang1120.com ,就可以这样执行 SQL 来全局替换:
更新站点设置
UPDATE yang1120_options SET option_value = replace(option_value, 'yang1120.club', 'blog.yang1120.com') WHERE option_name = 'home' OR option_name = 'siteurl';
更新文章内容
UPDATE yang1120_posts SET post_content = replace(post_content, 'yang1120.club', 'blog.yang1120.com');
更新文章元数据(标签、插件设置)
UPDATE yang1120_postmeta SET meta_value = replace(meta_value, 'yang1120.club', 'blog.yang1120.com');
更新评论内容
UPDATE yang1120_comments SET comment_content = replace(comment_content , 'yang1120.club', 'blog.yang1120.com');
食用注意事项
需要修改数据库前缀,例如上述文章表是 yang1120_posts
,数据库前缀是 yang1120 ,需要按需修改成自己的数据库名。
yang1120.club
是旧域名,blog.yang1120.com
是新域名,替换为自己的就行。
一次执行是可行的:
UPDATE yang1120_options SET option_value = replace(option_value, 'yang1120.club', 'blog.yang1120.com') WHERE option_name = 'home' OR option_name = 'siteurl'; UPDATE yang1120_posts SET post_content = replace(post_content, 'yang1120.club', 'blog.yang1120.com'); UPDATE yang1120_postmeta SET meta_value = replace(meta_value, 'yang1120.club', 'blog.yang1120.com'); UPDATE yang1120_comments SET comment_content = replace(comment_content , 'yang1120.club', 'blog.yang1120.com');