数据库
最初,您应该更新数据库中对旧域的所有引用。下面的SQL将解决这个问题,但请先阅读以下注释-
此SQL假定您使用的是默认wp_
表前缀。如果已更改,只需将其更改为所选的表前缀即可更换database_name
WordPress使用的数据库的名称更换www.old-domain.com
使用您所在的域的名称moving away from.更换www.new-domain.com
使用您所在的域的名称moving to.虽然不太可能,但可能还有其他对旧域的引用(在wp_postmeta
例如)。要检查,请输入PHPMyAdmin
您应该选择数据库,单击Search 并搜索任何引用%www.old-domain.com%
然后根据需要手动更新它们Important - 下面的示例将只更新对主站点和第一个子站点的旧域的引用。如果您有更多的站点,则需要复制UPDATE wp_*_options...
和UPDATE wp_*_posts
查询,其中*
是站点的ID。
USE `database_name`;
UPDATE `wp_options` AS `o1` SET `o1`.`option_value` = REPLACE(`o1`.`option_value`, \'www.old-domain.com\', \'www.new-domain.com\') WHERE `o1`.`option_name` IN (
\'siteurl\',
\'home\'
);
UPDATE `wp_options` AS `o2` SET `o2`.`option_value` = REPLACE(`o2`.`option_value`, \'www.old-domain.com\', \'www.new-domain.com\') WHERE `o2`.`option_name` IN (
\'siteurl\',
\'home\'
);
UPDATE `wp_posts` AS `p1` SET `p1`.`guid` = REPLACE(`p1`.`guid`, \'www.old-domain.com\', \'www.new-domain.com\');
UPDATE `wp_2_posts` AS `p2` SET `p2`.`guid` = REPLACE(`p2`.`guid`, \'www.old-domain.com\', \'www.new-domain.com\');
UPDATE `wp_blogs` AS `b` SET `b`.`domain` = REPLACE(`b`.`domain`, \'www.old-domain.com\', \'www.new-domain.com\');
UPDATE `wp_site` AS `s` SET `s`.`domain` = REPLACE(`s`.`domain`, \'www.old-domain.com\', \'www.new-domain.com\');
UPDATE `wp_sitemeta` AS `sm` SET `sm`.`meta_value` = REPLACE(`sm`.`meta_value`, \'www.old-domain.com\', \'www.new-domain.com\');
UPDATE `wp_usermeta` AS `um` SET `um`.`meta_value` = REPLACE(`um`.`meta_value`, \'www.old-domain.com\', \'www.new-domain.com\');
我在网络安装中错过的重要一点
DOMAIN_CURRENT_SITE
常量在中声明
wp-config.php
. 只需打开该文件并将该常量的值更新到新域,您就可以开始了。
在某些情况下,需要再考虑一点WP_HOME
和WP_SITEURL
常量可以在中声明wp-config.php
, 这些当然会覆盖数据库中的任何条目。我建议在文件中搜索这些条目以防万一,如果它们存在,我建议删除它们(或者至少注释掉它们),因为使用DB条目更好。
define(\'WP_HOME\', \'http://www.old-domain.com\');
define(\'WP_SITEURL\', \'http://www.old-domain.com\');