WordPress 主从站(同库不同前缀)同步登录完整成功教程

WordPress 主从站(同库不同前缀)同步登录完整成功教程

适用场景:主站(www.henhu.com)、从站(blog.henhu.com)为两个独立 WordPress 程序,共用同一个数据库、不同表前缀,实现「一次登录、两站同步」,且从站可正常登录后台。

一、前期准备(必看)

  • 主站:域名henhu.com,数据库表前缀 wp_
  • 从站:域名henhu.com,数据库表前缀 blog_
  • 核心前提:主站、从站使用同一个数据库(数据库账号、密码一致)

二、核心步骤(按顺序操作,全部成功)

步骤1:主站 wp-config.php 配置(只加不替换)

打开主站根目录 wp-config.php,找到 /* That's all, stop editing! Happy publishing. */,在其上方添加以下代码(实现 Cookie 同步):

php
// 多站同步登录 Cookie 配置(主站)
define('COOKIE_DOMAIN', '.henhu.com');
define('COOKIEPATH', '/');
define('SITECOOKIEPATH', '/');
define('ADMIN_COOKIE_PATH', '/');
define('COOKIEHASH', md5('https://www.henhu.com'));

保存即可,主站配置完成。

步骤2:从站 wp-config.php 配置(只加不替换)

打开从站根目录 wp-config.php,同样在 /* That's all, stop editing! Happy publishing. */ 上方,添加以下代码(共享主站用户表+同步 Cookie):

php
// 共享主站用户表(从站)
define('CUSTOM_USER_TABLE', 'wp_users');
define('CUSTOM_USER_META_TABLE', 'wp_usermeta');

// Cookie 同步(必须和主站完全一致)
define('COOKIE_DOMAIN', '.henhu.com');
define('COOKIEPATH', '/');
define('SITECOOKIEPATH', '/');
define('ADMIN_COOKIE_PATH', '/');
define('COOKIEHASH', md5('https://www.henhu.com'));

// 【关键】8个密钥必须和主站 wp-config.php 里的完全一致
define('AUTH_KEY',         '主站的AUTH_KEY值');
define('SECURE_AUTH_KEY',  '主站的SECURE_AUTH_KEY值');
define('LOGGED_IN_KEY',    '主站的LOGGED_IN_KEY值');
define('NONCE_KEY',        '主站的NONCE_KEY值');
define('AUTH_SALT',        '主站的AUTH_SALT值');
define('SECURE_AUTH_SALT', '主站的SECURE_AUTH_SALT值');
define('LOGGED_IN_SALT',   '主站的LOGGED_IN_SALT值');
define('NONCE_SALT',       '主站的NONCE_SALT值');

注意:将上述 8 个密钥,替换成主站 wp-config.php 中对应的密钥(复制粘贴即可,不能修改),保存完成。

步骤3:修复从站管理员权限(解决从站登不上后台)

此时主从站已实现同步登录,但从站管理员无后台权限,需给从站管理员分配权限(无需操作数据库,直接用代码):

  1. 打开从站路径:wp-content/themes/当前使用的主题/functions.php
  2. 在php 最底部,添加以下代码:

php
// 给当前登录用户分配从站管理员权限(运行一次即可删除)
$current_user = wp_get_current_user();
if ($current_user->ID) {
    update_user_meta($current_user->ID, 'blog_capabilities', array('administrator' => true));
    update_user_meta($current_user->ID, 'blog_user_level', 10);
}

  1. 保存代码,刷新从站后台(此时已能正常登录后台);
  2. 登录成功后,删除上述添加的代码(仅需运行一次,留着不影响但建议删除)。

三、成功验证

  • 登录主站(henhu.com),打开从站(blog.henhu.com),自动同步登录;
  • 注销任意一个站点,两个站点同时注销;
  • 主站、从站均可正常登录后台,内容、插件、主题完全独立,仅共享用户数据。

四、补充说明(避坑重点)

  • 全程无需修改从站原有代码,所有配置均为「添加」,不替换原有内容;
  • 8个密钥必须主从站一致,否则同步登录失败;
  • 从站权限代码仅需运行一次,登录后台后及时删除;
  • phpMyAdmin 报错不影响网站同步登录,若需修复,直接在宝塔面板「软件商店」重装 phpMyAdmin 即可。

|(注:文档部分内容可能由 AI 生成)