我有一个wordpress网站说www。 flowers.com。现在我可以有3个子域名为“玫瑰”,“向日葵”,“兰花”,带有新的wp安装,例如:www。 roses.flower.com,主网站有链接指向每个子目录索引文件。他们一切都很好
现在,一个用户如何使用一个用户名登录所有站点?
我尝试在所有子域网站上使用相同的sql目录数据库,但仍然每次用户需要登录不同的子域。
欢迎所有的想法。
提前致谢 :)
方案:
我们的目标是建立两个将共享登录和相同用户的WordPress网站。一旦用户订阅了一个网站,她就能够访问具有相同角色和功能的其他网站。
步骤1:为了共享相同的用户和usermeta表,WordPress安装必须共享同一个数据库。
添加第一个wordpress安装first_和第二个wordpress安装表second_的前缀。在同一个数据库中
第2步:当第一个WordPress网站启动并运行时,我们可以编辑其配置文件。打开/first/wp-config.php并在“停止编辑”注释上方添加以下行:
$table_prefix = 'first_';
define('WP_DEBUG', true);
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );
// custom users and usermeta tables
define( 'CUSTOM_USER_TABLE', $table_prefix . 'users' );
define( 'CUSTOM_USER_META_TABLE', $table_prefix . 'usermeta' );
/* That's all, stop editing! Happy blogging. */
第3步:我们完成了第一次安装。接下来,我们必须从第一个安装文件夹复制wp-config.php并将其粘贴到第二个安装的根文件夹中。小心相应地更改$ table_prefix值:
打开/second/wp-config.php.并在“停止编辑”注释上方添加以下行:
$table_prefix = 'second_';
define('WP_DEBUG', true);
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );
// custom users and usermeta tables
define( 'CUSTOM_USER_TABLE', 'first_users' );
define( 'CUSTOM_USER_META_TABLE', 'first_usermeta' );
第4步:在wp-config.php中写入共享cookie。
//Share cookies
define('COOKIE_DOMAIN', '.xyz.com');
define('COOKIEHASH', 'aee53c017c29dc0d3ae37253fc8cbfd8');
步骤5:打开表“first_usermeta”并从列meta_key - first_capabilities和first_user_level复制到second_capabilities和second_user_level。
步骤6:运行第二次安装时,我们应该为admin用户设置一个不存在的电子邮件地址,因为WordPress会从first_users表中找到许多现有用户。
更多细节:https://kinsta.com/blog/share-logins-wordpress/。这对我有用。