WordPress 内置多站点,即站群功能。如果有需要的话可以开启下。

1、在 wp-config.php 文件中添加 define('WP_ALLOW_MULTISITE', true); 代码,以允许开启站群功能。

注意:WordPress 未开启站群功能前后台显示界面及数据库显示界面如下:


2、允许开启站群功能后在 WP 后台/工具面板下可以看到【站点网络配置】功能。默认如果你的站点安装在了根目录会显示如下所示内容,即允许配置按子域名配置站群,还是按子目录配置站群。

如果你要开启站群功能的站点是已经超过一个月的站点,则只能按子域名配置站群。

如果你的站点默认就是以子目录的方式访问的,则只能按子目录配置站群。

当然后面你也可以通过配置define( 'SUBDOMAIN_INSTALL', false );为 true 或 false 强行切换两种方式。

注意:如果希望主站直接访问域名就可以访问到,则在配置多站点前可以在“后台/设置/常规”中先配置好**站点地址(URL)**指向网站根目录即可,当然你也可以后面修改数据库中的 wp_blogs 与 wp_site 表也可以。

点击安装完成后,数据库中会新增如下几个表:

  • wp_blogmeta: 每个站点的 Meta 信息。
  • wp_blogs: 创建的每个站点都存储在表wp_blogs 中。
  • wp_registration_log: 记录创建的每个新网站时创建的管理员用户。
  • wp_signups: 此表保存通过登录注册过程注册站点的用户。
  • wp_site: 该表包含主站点地址。
  • wp_sitemeta: 主站的一些 Meta 信息。

3、选择配置站群的方式(子域名或子目录),数据表安装完成后会进入如下面板。系统会提示你讲以下代码配置到 wp-config.php 文件及 .htaccess 中去。

如果网站采用的是 Nginx 服务,则你的后台显示应该是这样的。

注意:Nginx 没有像 Apache 的 .htaccess 或 IIS 的 web.config 文件那样的目录级配置文件。所有配置都必须由管理员在服务器级别完成,WordPress 无法修改配置。而且 WordPress 大部分的文档都是以 Apache 配置的,建议不要使用 Nginx 服务。

wp-config.php 配置

define( 'MULTISITE', true );
define( 'SUBDOMAIN_INSTALL', false );
define( 'DOMAIN_CURRENT_SITE', 'demo.zibuyu.life' );
define( 'PATH_CURRENT_SITE', '/' );
define( 'SITE_ID_CURRENT_SITE', 1 );
define( 'BLOG_ID_CURRENT_SITE', 1 );

直接复制到上面 define('WP_ALLOW_MULTISITE', true); 代码后即可。

.htaccess 配置

# BEGIN WordPress

RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) wordpress/$2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ wordpress/$2 [L]
RewriteRule . index.php [L]

# END WordPress

4、配置完成后刷新网站后台,重新登录即可完成配置。

5、安装完成后访问数据库,可以看到除主站点使用的原来的数据表, WordPress 为每一个站点以站点ID新建了单独的数据表用以管理各站点数据。

同时,文件上传目录,除主站点外的其他站点,所有上传文件储存在了 sites 文件夹中。

参考链接: