关于博客作者身份的多站点用户同步问题

时间:2020-05-23 作者:Gaurav

我曾经有一个wordpress站点,其中有一个buddypress部分(注销的访问者只能看到博客,但登录的用户可以看到buddypress区域)。我意识到这是无效的,所以我将其转换为一个多站点,其中我的“公共”网站是根域,而我的“内部网”是at/team子目录。当我访问网络站点管理员时,我看到190个用户。当我访问公共网站管理员(最初的网站)时,我看到了190个用户。当我访问/团队子网站管理员时,我只看到一个用户:我,超级管理员。有些事情看起来很奇怪,但我知道在后端,WP只有一个users表,所以理论上应该没问题。

我的公共网站上的帖子是由注册成为我的intranet子网站一部分的人撰写的Should new members register on my main root site, or on the /team subsite. That is, should the "register/join our team" link point to http://main.com/register or http://main.com/team/register ? Does it make a difference? 我如何配置我的多站点的后端,以便只有一个博客,并且所有文章、草稿等都在我的主站点和我的团队站点上共享(例如,我希望团队intranet上的每个成员的个人资料页面列出他们为公共网站撰写的所有帖子)。

以下是我迄今为止尝试过的内容(最后一行对齐博客帖子,但不同步成员):

wp-config.php

define( \'WP_DEBUG\', false );
define(\'WP_ALLOW_MULTISITE\', true);
define(\'MULTISITE\', true);
define(\'SUBDOMAIN_INSTALL\', false);
define(\'DOMAIN_CURRENT_SITE\', \'localhost\');
define(\'PATH_CURRENT_SITE\', \'/wordpress2/\');
define(\'SITE_ID_CURRENT_SITE\', 1);
define(\'BLOG_ID_CURRENT_SITE\', 1);
define ( \'BP_ROOT_BLOG\', 2 ); // "2" is the team subsite $id

bp-custom.php

define ( \'BP_ENABLE_MULTIBLOG\', true );
add_filter( \'bp_is_multiblog_mode\', \'__return_true\' );

define ( \'BP_ROOT_BLOG\', 3 );
add_filter( \'bp_get_root_blog_id\', \'filter_root_blog_id\' ); // return blog ID in
我还安装了WordPress多站点用户同步/不同步插件,但不确定这是否解决了我的问题。我是否应该为每个成员添加“最后一个活动”,以便他们出现在我的团队用户列表中(我在某个地方读到了这可能会有所帮助)?

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

如果有人偶然发现了这一点,下面是我得出的答案:

即使对于多站点,WP数据库中也只有一个users表。因此,他们在哪里注册并不重要。但是,除非在用户注册时正确配置,否则用户将被“标记”到他们首次注册的站点,并且仅在该站点上。有很多方法可以配置来完成上面我想要的事情,最后我使用了一个名为Multi User Sync.