用于登录的Wordpress共享用户数据库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用于登录的Wordpress共享用户数据库相关的知识,希望对你有一定的参考价值。

我要做的是在同一个数据库上共享2个或更多Wordpress安装之间的用户凭据。我阅读了很多这方面的教程和论坛,但没有一个给我一个明确的答案。所以根据Wordpress Codex([1]),我所要做的就是将下面的代码添加到wp-config.php(子安装),以便为用户和usermeta切换表:

define( 'CUSTOM_USER_TABLE', 'main_users' );
define( 'CUSTOM_USER_META_TABLE', 'main_usermeta' );

这允许我使用根站点的用户名和密码登录,但我收到了消息

您没有足够的权限来访问此页面。

然后我完全迷失了。我按照[1]中的说明检查了数据库中的_capabilities,但仍然收到了该消息。

任何帮助都会非常感激,因为我正在为这个工作3天。谢谢!

[1] http://codex.wordpress.org/Editing_wp-config.php#Custom_User_and_Usermeta_Tables

答案

这不是一个正确的方法。如果你成功了,我认为你将面临一些严重的安全漏洞。

相反,您应该考虑创建WordPress多站点安装。 Multisite的详细信息如下:http://codex.wordpress.org/Create_A_Network

您还可以在此处了解有关Multisite的更多信息:http://mashable.com/2012/07/26/beginner-guide-wordpress-multisite/

试图获得两个单独的安装来共享信息并不是解决这个问题的正常方法...大多数时候有这个要求,我见过人们使用Multisite。

另一答案

方案:

我们的目标是建立两个将共享登录和相同用户的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。 enter image description here

步骤6:运行第二次安装时,我们应该为admin用户设置一个不存在的电子邮件地址,因为WordPress会从first_users表中找到许多现有用户。

更多细节https://kinsta.com/blog/share-logins-wordpress/.

这对我有用。

以上是关于用于登录的Wordpress共享用户数据库的主要内容,如果未能解决你的问题,请参考以下文章

用于 WordPress 的 PHP 片段,用于获取所有产品子类别

Wordpress - 将代码片段包含到布局的选定部分的插件

php WordPress功能,用于根据用户角色重定向用户登录

在 2 个 WordPress 上共享用户安装在同一台服务器上的 2 个子域中

Wordpress -> Laravel - 跨域资源共享

在我的网站和 wordpress 博客之间共享会话