如何在WP多站点中为子域使用不同的域?

时间:2021-01-22 作者:Maytha8

我有一个WordPress多站点网络。我想有一个单独的域名我的子域我的主网站。

我的意思是,例如,mymainsite.com 在主站点上,但我的子域基于另一个域,subdomains.com, 例如example1.subdomains.com, example2.subdomains.com, 等等

我读过关于域映射的内容,我知道您可以创建子域,然后更改站点URL以匹配,但我要求WordPress自动执行此操作,以便当用户注册站点时,它可以在subdomains.com 自动地

这是否可能在一个WordPress安装中实现,或者我需要进行两个单独的安装?

1 个回复
最合适的回答,由SO网友:Celso Bessa 整理而成

让我们建立基线:可以在example-domain-x.com中拥有主站点,在example-domain-y.com中拥有所有子网站子域。您只需添加子域1。example-domain-y.com(或subdomain2.example-domain-y.com,subdomain3.example-domain-y.com)希望您在域映射面板中添加裸域或www域(URL包含wp-admin/network/settings.php?page=dm_domains_admin ).

annotated domain mapping screen in a WordPress Multisite

要以编程方式实现相同的功能,可以将函数挂接到wp_normalize_site_data 筛选并更改数据数组中的域。

add_filter(\'wp_normalize_site_data\',\'wpse38196_wp_modify_domain_new_site\');

function wpse38196_wp_modify_domain_new_site($data){
    // $data is an array, the same from wp_insert_site. See https://developer.wordpress.org/reference/functions/wp_insert_site/
    $original_domain = $data[\'domain\'];x§   
    $data[\'domain\'] = str_replace(\'mymainsite.com\', \'subdomains.com\', $data[\'domain\']);
    return $data;
}
我假设您知道,但在任何情况下,您还需要在HTTP服务器(即apache、nginx)、任何反向代理(例如nginx、Varnish、Cloudflare)和DNS服务器中设置新的域和SSL证书。这可能更难按程序进行,包括因为执行步骤会根据设置进行更改。

相关推荐

Is mature Multisite

我正在运行一个多站点。然而,我希望能够分离某些站点。我看到的唯一选项是“成熟”复选框。我没有运行成熟的网站。我想添加一个“Premium”复选框,但这似乎是不可能的。因此,我将我的Premium博客标记为“成熟”复选框。是否有“Is\\u matured()”类型的函数来确定多站点是否标记为成熟?