如何在WordPress网站之间共享用户和登录

云柯 524 3

您是否希望在两个或更多WordPress网站之间共享用户和登录会话?如果是这样,您可以按照本指南逐步学习如何操作。

最近,我发现自己处于这样一种情况,我需要在网站上添加一个bbPressBuddyPress “部分”(我们称之为网站B),尽管主网站(网站A)和网站B应该有不同的WordPress安装。幸运的是,这两个网站都托管在同一台服务器上,因此这使得整个场景变得更加容易。

在我完成它并使其工作之后,我决定写一篇文章来防止你在做这个时遇到的一些麻烦。此外,该过程可以扩展到您需要的任意数量的网站。就我而言,我只需要在两个WordPress安装之间同步登录详细信息和cookie。

要求/场景

  • 站点A和站点B必须位于同一顶级域(子文件夹或子域)
  • 站点A和站点B将使用相同的数据库

可能很明显,但您还需要FTP访问这两个网站,我们将为两个网站打开和编辑wp-config.php。如果您符合要求,我们可以继续前进。

(可选)获取完整的网站备份

由于我们将使用wp-config.php和数据库,因此最好是安全并运行完整的网站备份,或者至少是数据库和wp-config.php。为此,我建议使用Updraft PlusWP Time Capsule,但几乎任何其他解决方案都可以使用。我推荐它们是因为我多次使用过它们并且从未让我失望过。

共享用户和用户元

为了在两个网站上拥有相同的登录名和密码,我们将使用相同的数据库表。如果您使用的是默认前缀,则应将这些名称称为wp_userswp_usermeta。

1.检查站点A的表前缀

如果您不确定您的站点的表前缀,请打开  站点A的wp-config.php并查找以下行:

$table_prefix  = 'wp_';

在大多数情况下,它将是wp_,但如果你的不同只是记住它,因为我们也将它用于  站点B的wp-config.php。保持wp-config.php打开,稍后我们将需要更多信息,以及编辑它。

2.为站点B安装WordPress

请记住,我们将使用与站点A相同的数据库,因此您必须为站点B使用不同的表前缀。在我的示例中,我决定使用  com_,简称社区。你可以使用你看到的任何东西,这没关系。
如果您使用自动WordPress安装的工具不允许您选择数据库和前缀,请不要担心它,因为您可以稍后从wp-config更改它们。只需确保在子文件夹或  子域中安装了WordPress  

打开  站点B的wp-config.php,并将数据库名称,用户和密码替换为  站点A。

现在两个站点都将使用相同的数据库。确保  站点B使用不同的表前缀。

3.在网站之间共享WordPress用户

要做到这一点,我们需要做的是确保  站点B使用相同的表的用户usermeta作为  站点A.打开  站点B的WP-config.php文件和右侧前添加以下行  
/ *这一切,停止编辑!快乐的博客。* /

请注意,wp_是  站点A的表前缀。如果您的不同,则需要更新这些行。

干得好,两个网站现在共享相同的用户(如果你做的一切都正确)。

共享登录Cookie

既然两个网站都使用相同的登录详细信息,您会注意到如果您切换网站,则必须再次登录。这可以通过共享登录cookie来解决,这是如何做到的。

1.编辑站点A的wp-config.php

就在之前  / *就是这样,停止编辑!快乐的博客。* /,添加以下行:

在第一行中,您必须将yourwebsite.com替换为您的实际域名。在第二行,您必须放置您的WordPress站点地址(URL),您可以从仪表板 - >设置 - >常规

不要关闭  站点A的wp-config.php,我们仍然需要站点B的一些信息  。

2.编辑站点B的wp-config.php

与我们对数据库名称,用户和密码的处理方式类似,我们现在将从站点A复制以下行  并替换  站点B中存在的行

显然,你实际上找不到名称stringof40characters中的任何内容  ,而是一些40个字符的不同随机字符串。
接下来,我们需要确保  站点B站点A共享登录cookie  。

与上一步类似,我们现在将编辑  站点B的wp-config.php并添加我们为站点A添加的相同行  。

获取您站点B的管理员权限

完成上述步骤后,您会注意到您的网站确实正在同步登录会话,但您不能访问管理仪表板。
您将收到此错误消息:  抱歉,您无权访问此页面。

要获得对它的访问权限,我们需要手动编辑  wp_usermeta数据库表。有很多选项可以做到这一点,大多数人都会在你的服务器上安装phpMyAdmin。就个人而言,我正在使用Adminer  (又名phpMinAdmin),因为我很少编辑数据库而且我不需要永久安装它。

接下来,打开数据库并转到wp_usermeta表。如果您也在使用Adminer,则必须单击“  选择数据”  以查找  wp_capabilities meta_key。

如何在WordPress网站之间共享用户和登录

从admin用户的wp_capabilities复制  meta_value,创建一个New项 并设置:

  • umeta_id  (留空,会自动递增)
  • user_id:1(对于大多数人来说,这将是站点A上管理员的user_id)
  • meta_key:com_capabilities(com_ 是站点B的前缀。将其替换为您的前缀)
  • meta_value:复制 - 从wp_capabilities中为user_id = 1粘贴相同的meta_value

完成后,它应该是这样的。

如何在WordPress网站之间共享用户和登录

现在你已经完成了,你的网站是共享用户,登录,你也在网站B上给自己管理员角色。

打赏
发表评论 取消回复
表情 图片 链接 代码

  1. 紫苏
    紫苏 Lv 3

    应用场景不多啊。

    Google Chrome 73 Google Chrome 73 Windows 7 Windows 7
    • 云柯
      云柯 站长

      毕竟少部分人有这个需求

      Google Chrome 69 Google Chrome 69 Windows 7 Windows 7

      @紫苏

  2. 博学老头

    不错,学习了

    Sogou Explorer Sogou Explorer Windows 7 Windows 7
分享
微信
微博
QQ