问题描述
首先,Multisite 不是我正在寻找的。我有 5 个网站使用 Wordpress 所有在不同的域,我想要启用用户帐户。我需要在整个网络上共享用户数据,而在用户创建帐户时,他们也可以即时访问所有其他网站。当我使用多站点时,我不建议使用 Wordpress:
If you plan on creating sites that are strongly interconnected, that share data, or share users, then a multisite network might not be the best solution. –http://codex.wordpress.org/Before_You_Create_A_Network (1st paragraph, 3rd sentence)
我试过使用这里提到的 「共享用户表格技巧」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 和这个”trick” 似乎不起作用。
我试图将这段代码插入到 $table_prefix
线周围的 wp-config 中。
define('CUSTOM_USER_TABLE', 'wp_users');
define('CUSTOM_USER_META_TABLE', 'wp_usermeta');
长篇小说,我不认为这个伎俩可以工作,因为我无法登录到管理端的第二个网站。
关于什么最好的方式链接这些数据的任何建议将是?
最佳解决方案
好的,首先,我觉得自己是一个白痴,尽管在我的辩护中,大多数谈论这件事情的文章都没有提到使这项工作非常关键的细节。答案是您需要在数据库中为至少一个管理员设置权限。这个信息可以在 Codex 这里找到:http://codex.wordpress.org/Editing_wp-config.php#Custom_User_and_Usermeta_Tables
在设置了 wp-config.php 文件后,您必须更改主 usermeta 表 (在我的情况下为 wp_usermeta) 字段 wp_capabilities 行和 meta_value 列。通过 phpMyAdmin 执行此操作
注意:对于至少一个用户管理员登录,可以进行此操作。一旦您进入,您可以从后端调整所有其他用户/管理员角色。
对于创建的每个网站,需要将新的站点前缀分配给管理员用户角色。
在我的情况下,由于我目前只在 2 个网站上工作,现在看起来像这样:
a:1:{s:13:"administrator";s:1:"1";}
tbs_capabilities = a:1:{s:13:"administrator";s:1:"1";}
第一行设置默认表前缀 (在这种情况下为 wp_) 的权限,第二行设置第二个网站的权限 (在本例中为 tbs_前缀) 。
感谢 brasofilo 的意见,指出我要进一步挖一下,终于解决我的问题!
我希望这个答案可以帮助那些遇到同样问题的人。
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。