如何更改WordPress网络域

时间:2015-01-07 作者:David Gard

我最近将我的WordPress网络移动到了一个新的领域,并认为我已经更新了对该域名的所有引用,但我错了。我到处寻找answey,但唉,我在哪里都找不到,所以我想我应该写下这个问题/答案。

在我的scanario中,网络上的“主页”是一个简单的页面,其中列出了当前处于活动状态的所有其他网站,但network_site_url({blog path}) 正在返回指向旧域上站点的链接。

network_site_url() 使用get_current_site() 返回与当前站点相关的对象,并且正是该对象列出了domain 不正确。

function get_current_site() {
    global $current_site;
    return $current_site;
}
尽管我努力了,我还是找不到$current_site 已声明全局。

2 个回复
最合适的回答,由SO网友:David Gard 整理而成

数据库

最初,您应该更新数据库中对旧域的所有引用。下面的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_HOMEWP_SITEURL 常量可以在中声明wp-config.php, 这些当然会覆盖数据库中的任何条目。我建议在文件中搜索这些条目以防万一,如果它们存在,我建议删除它们(或者至少注释掉它们),因为使用DB条目更好。

define(\'WP_HOME\', \'http://www.old-domain.com\');
define(\'WP_SITEURL\', \'http://www.old-domain.com\');

SO网友:Artem Kotov

您还可以使用:Search Replace DB

并执行以下操作:

replace: "olddomaim.com" with: "newdomain.com"
and > "live run"
如果需要替换NowwDomain。com到www.domain。com首先执行以下操作:

replace: "www.domain.com" with: "domain.com"
and > "live run"
然后:

replace: "domain.com" with: "www.domain.com"
and > "live run"
因为你可能会在“www.www.domain.com”上遇到问题

结束

相关推荐

Web.config打破了子目录MultiSite的主题

我们正在将单个wordpress站点转换为子目录网络,但找不到任何web。正确工作的配置。一旦我们更改了单站点web,我们就永远无法让主题发挥作用,即使是在根(/)站点上。为多站点配置,它会中断。我已经搜索了几个小时,找到了几个人们找到网站的主题。配置对我们有效,但没有一个对我们有效,主题总是被打破。我们需要的设置如下:http://www.domain.com/ (主站点)http://www.domain.com/en/ (网站英文版)我确实在我自己的Apache服务器上实现了一定程度的功能,但它尝试