当一个组织需要管理多个独立的品牌网站、多个国家/地区的分站、或者多个不同业务的子站点时,WordPress 多站点网络(Multisite Network)是最佳选择。但如果这些网站的域名完全不同,且需要独立管理内容和用户,多站点网络仍然可以胜任,只是配置方式稍有不同。此外,还有“多网络”(Multi-Network)和“主从站点”等更灵活的架构方案。

WordPress 多站点网络与多域名 的配置需要在网络安装时选择“子域名”模式。之后,每个子站点都可以绑定独立的域名,而不必使用子域名或子目录。实现方式是通过 WordPress 的 wp-config.php 中的 DOMAIN_CURRENT_SITE 和 .htaccess 或 Nginx 的重写规则。

在 Nginx 中配置多域名指向同一个 WordPress 安装:

server {
    listen 80;
    server_name site1.com site2.com site3.com;
    root /var/www/wordpress;
    index index.php;
    # 标准 WordPress 配置...
}

然后在 WordPress 网络管理中,为每个子站点设置独立的域名。在“站点信息”中,将“站点地址(URL)”修改为绑定的域名。

多站点的用户管理 是多域名管理中的一个重点。默认情况下,用户需要在每个子站点上单独注册。如果你希望用户在整个网络中共享同一个账号,可以启用网络设置中的“允许新用户注册到网络”。注册后,用户可以使用同一个账号登录所有子站点,但需要在每个站点上单独分配角色。

跨站点内容共享 是多域名管理的常见需求。比如在主站点的首页展示所有子站点的最新文章。使用 switch_to_blog 和 restore_current_blog 可以跨站点获取数据:

$sites = get_sites(array('public' => 1));
$all_posts = array();
foreach ($sites as $site) {
    switch_to_blog($site->blog_id);
    $recent = wp_get_recent_posts(array('numberposts' => 3, 'post_status' => 'publish'));
    foreach ($recent as $post) {
        $post['site_name'] = get_bloginfo('name');
        $all_posts[] = $post;
    }
    restore_current_blog();
}
usort($all_posts, function($a, $b) {
    return strtotime($b['post_date']) - strtotime($a['post_date']);
});

多网络(Multi-Network) 是多站点网络之上的更高层级架构。它允许你在同一个 WordPress 安装中运行多个独立的网络,每个网络有自己独立的站点列表和超级管理员。这对于大型托管平台或集团公司非常有用。

启用多网络需要在 wp-config.php 中定义:

define('WP_ALLOW_MULTISITE', true);
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', true);
define('MULTI_NETWORK', true);

然后在 wp-content/ 目录下创建一个 blogs.dir 或使用 wp_blogs 表中的新记录来添加网络。

域名映射 在多站点中是一个常见需求。如果你需要为子站点绑定自定义域名(而不是使用 subdomain.example.com),可以使用 WordPress MU Domain Mapping 插件(现在已合并到核心的 wp-config.php 配置中)或者直接在服务器上配置域名别名。

主从站点架构 是一种更轻量的多站点管理方式,适用于主站和子站内容关联紧密的场景。主站负责内容管理,子站通过 REST API 获取主站的内容并展示。这种架构结合了多站点网络的集中管理优势和独立站点的灵活性。

SEO 与多域名 是需要特别注意的。每个域名应该有自己的独立内容和主题,避免内容重复。在 Google Search Console 中为每个域名单独添加验证。如果多个域名内容相似,使用 hreflang 或 canonical 标签注明主域名。

性能考量 多站点网络在管理大量站点时,数据库查询会变多。建议:

  • 使用 Redis 对象缓存

  • 定期清理不活跃的站点和用户

  • 使用 wp site empty 清空测试站点的数据

  • 对多站点的数据库表进行定期优化

多域名多站点管理让一个 WordPress 后台可以支撑多个独立品牌或业务线,同时共享用户、主题和插件资源。这种集中管理模式在降低运维成本的同时,也提高了内容管理的一致性。