0

我想要多站点 Wordpress 网络。其中,当用户登录一个站点时,可以选择登录该用户的相关站点。

如果用户登录一个站点。(在子域上)用户也可以登录其他站点。带有一些链接或选项。(在子域上)。所有站点都在同一个域中。

我试过了https://codex.wordpress.org/Create_A_Network。但这对我没有帮助。因为这里只有网络管理员可以添加主题/插件。只有网络管理员可以访问所有站点。

我已经尝试过这篇文章“ https://kinsta.com/blog/share-logins-wordpress/ ”。但是有了这个,我可以共享相同的用户凭据。没有任何用于登录其他站点的链接或选项。

4

1 回答 1

0

解决方案 :

我们的目标是建立两个共享登录名和相同用户的 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 步:运行第二次安装时,我们应该为管理员用户设置一个不存在的电子邮件地址,因为 WordPress 从 first_users 表中找到了许多现有用户。

有关更多详细信息https://kinsta.com/blog/share-logins-wordpress/

这是为我工作。

于 2017-12-21T06:24:24.117 回答