WordPress MU 迁移起来很麻烦。
没有什么可以逐个表替换这些 URL。并且您要小心编辑 sql 转储文件,以防 url 存储在任何序列化对象或数组中,因为您将破坏该数据的完整性。
如果您想直接在 MySQL 中执行此操作,则可以,但会很耗时。这也是最安全的。
这在 PHPMyAdmin 中是最简单的,即使对于经验丰富的 SQL 专家来说也是如此,因为 PHPMyAdmin 非常方便,因为您将经常编辑 SQL 查询。基本查询是:
Update "table_name"
SET "column_name" = REPLACE("column_name","find","replace")
WHERE "column_name" LIKE "%find%"
因此,就您而言,对于 post 表:
Update wp_1_posts
SET post_content = REPLACE(post_content,"www.oldurl.com","www.newurl.com")
WHERE post_content LIKE "%www.oldurl.com%"
接下来,查看 postmeta 表。如果有序列化数据,您可能会在这里遇到麻烦。因此,首先进行搜索以查看数据的外观,并查看是否有任何特定字段应从查找/替换脚本中删除。您对此表的更新将与上一个非常相似:
Update wp_1_postmeta
SET meta_value = REPLACE(meta_value,"www.oldurl.com","www.newurl.com")
WHERE meta_value LIKE "%www.oldurl.com%"
如果您发现需要排除的字段,请像这样修改脚本:
Update wp_1_postmeta
SET meta_value = REPLACE(meta_value,"www.oldurl.com","www.newurl.com")
WHERE meta_value LIKE "%www.oldurl.com%"
AND meta_name NOT IN ('meta_name_1', 'meta_name_2')
选项表应该手工完成 - 你有太多的潜力通过自动化来搞砸一些事情。查找siteurl、home 和fileupload_url 字段。寻找其他可能也存储了这些值的东西并手动更新它们。
然后适当地更新 wp_blogs 和 wp_site。
迁移 MU 是噩梦的组成部分。慢慢来,查看所有内容,最重要的是首先在您的主要数据的副本上执行所有这些操作以进行测试。数据库空间很便宜,丢失的数据则不然。