在多个WordPress网站上共享用户数据的最佳方式是什么?

时间:2013-02-11 作者:Ian

首先,多站点不是我想要的。我有5个使用Wordpress的网站,都在我想启用用户帐户的单独域上。我需要在整个网络上共享用户数据,当用户创建帐户时,他们也可以即时访问所有其他网站。Wordpress在使用Multisite时不推荐我这样做:

如果您计划创建高度互联、共享数据或共享用户的站点,那么多站点网络可能不是最佳解决方案-http://codex.wordpress.org/Before_You_Create_A_Network (第1段第3句)

我试过使用这里提到的“共享用户表技巧”http://wordpress.org/support/topic/multiple-sites-same-users-how 还有这里http://xentek.net/articles/528/implementing-the-wordpress-shared-users-table-trick/ 还有其他一些地方。。。问题是这些信息已经存在了2-7年,我使用的是Wordpress 3.5.1,而这个“技巧”似乎不起作用。

我试图在$table_prefix 线

define(\'CUSTOM_USER_TABLE\', \'wp_users\');
define(\'CUSTOM_USER_META_TABLE\', \'wp_usermeta\');
长话短说,我认为这个技巧不再管用了,因为我根本无法登录到管理端的第二个站点。

对链接这些数据的最佳方式有何建议?

3 个回复
最合适的回答,由SO网友:Ian 整理而成

好吧,首先,我觉得自己像个白痴,尽管在我的辩护中,大多数关于这一点的文章都没有提到这一工作中非常关键的细节。答案是,您需要为数据库中至少一个管理员设置权限。此信息可在此处的法典中找到:http://codex.wordpress.org/Editing_wp-config.php#Custom_User_and_Usermeta_Tables

设置wp配置后。php文件中,必须更改主usermeta表(在我的示例中为wp\\U usermeta)字段wp\\U capabilities行和meta\\U value列。通过phpMyAdmin执行此操作。

Note: 至少需要一个用户管理员才能登录。进入后,您可以从后端调整所有其他用户/管理员角色。

Screenshot of what users permissions will be changed

对于创建的每个网站,需要为新网站前缀分配管理员用户角色。

在我的情况下,因为我目前只在两个站点上运行此功能,所以看起来是这样的:

a:1:{s:13:"administrator";s:1:"1";}
tbs_capabilities = a:1:{s:13:"administrator";s:1:"1";}
Screenshot of wp_usermeta value

第一行设置默认表前缀的权限(在本例中为wp\\uu1),第二行设置第二个网站的权限(在本例中为tbs\\u2)。

感谢brasofilo的评论,指出我需要进一步挖掘,以最终解决我的问题!

我希望这个答案能帮助其他和我有同样问题的人。

SO网友:cenk

当共享wp\\u用户和wp\\u meta时,还有一个问题,其他wordpress安装可以识别用户,但是it does not recognize the roles of users coming from the other website. 角色显示为未定义。

因此,您编辑了wp配置。php(根据需要):

define(\'CUSTOM_USER_TABLE\', \'someprefix_users\');
define(\'CUSTOM_USER_META_TABLE\', \'someprefix_usermeta\');
我认为在不修补db的情况下,最简单的方法是使用wp内部构件。登录后,可以分配角色。比方说,每个人都需要贡献者角色,用户“超人”需要管理员角色。

function check_user_role($user_login, $user) {
  if ( $user_login == \'superman\' ) {
     $user->add_role(\'administrator\');
     } else {
     $user->add_role(\'contributor\');
  }
}

// the action fired on login
add_action(\'wp_login\', \'check_user_role\', 10, 2);
因此,来自初始网站的用户在登录时会获得分配的“贡献者”角色。

使用管理员用户登录后,您可以删除用户检查

http://codex.wordpress.org/Class_Reference/WP_User

SO网友:James Smith

我必须创建一个新行:

meta_key=\'tbs_capabilities\' meta_value=\'a:1:{s:13:"administrator";b:1;}\'

user_id=1. 你描述的方法不起作用。

结束

相关推荐

wp_list_tables bulk actions

如何在扩展的WP\\U List\\U表中触发批量操作。我一直在将以下批量操作添加到may table的选择框中,但在Apply上不会发生任何事情下面是我如何添加批量操作的function get_bulk_actions() { $actions = array( \'delete\' => \'Delete\', \'parsing\' => \'Parsen\' );