当你加入一个多站点时,你注册了哪些站点?

时间:2018-10-28 作者:JansenSensei

如果这听起来像我的超级n00b,我很抱歉,但每当我试图用谷歌搜索这些信息时,我得到的只是“让我的插件做这个或那个”的帖子或人们询问如何限制或释放跨网站限制。。。但实际上没有人回答最基本的问题:

When a user signs up on a multisite, what sites do they actually have access to?

我希望我的用户在我的网站上注册(我的一个子网站是唯一提供注册链接的地方),然后可以访问我的所有子网站(更具体地说,我的主网站)。当他们注册时,我可以在我的用户部分看到他们根本没有被分配到任何网站。。。然而,一些在注册我的子站点后导航到我的主站点的用户,当他们遇到我的自定义插件时,会在显示某些内容之前检查用户是否登录,这些用户会说“成功了,我得到了内容。谢谢”。与此同时,其他用户联系我说:“我什么都看不到。内容在哪里?”

每个人都已注册,没有人被分配访问任何网站,但不同用户的用户体验不同。啊!?

所以现在我很困惑。。。这是否意味着,对于在我的网站上注册的每一个用户,我必须在他们访问任何内容之前手动访问我的每个网站,或者我必须为自己编写/安装一个插件。。。?当他们注册时,难道他们至少有权访问一些东西吗?

我是超级管理员,我注意到我只能访问这两个站点中的一个(根据用户选项卡),但作为超级管理员,我仍然可以访问这两个站点(显然)。现在,我不知道我是如何访问一个以我的名字列出的网站,而不是另一个网站的。我怀疑这可能是因为我在我的帐户已经存在之后创建了子网站(显然)。。。但是新用户呢?他们注册了,用户页面说他们现在是订阅者,不能访问我的任何网站。。。啊!?

再次,如果他的声音听起来像超级n00b,我很抱歉,但这让我很困惑。

注册链接有什么意义?注册后你什么都不能访问

提前感谢您对我的任何澄清

编辑:仅添加。。。我最终将此添加到我的自定义插件中:

function my_join_blogs($user_id)   {
    $blogs_ids = get_sites();
    foreach( $blog_ids as $b ){
        if ( !is_user_member_of_blog( $user_id, $b->blog_id ) )
            add_user_to_blog( $b->blog_id, $user_id, \'subscriber\' );
    }
}  
add_action(\'wpmu_activate_user\',\'my_join_blogs\',10,1);
所以我不需要第三方插件的链接来让用户注册到我的子网站。我只是对我上面提出的问题感到好奇。谢谢

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

如果他们注册并选择“请输入用户名。”,他们有一个全局用户,可以在任何地方登录,但在任何地方都没有角色。因此,如果您的隐藏内容只需要一个登录的用户,他们就会得到它。如果它需要一些角色,他们不会。

如果他们注册并选择“给我一个网站!”他们获得了一个全局用户,该用户还拥有自己站点的管理员角色。

当不同的用户告诉您不同的事情时,您必须调查他们的角色是什么,以及您的隐藏内容需要什么,是角色还是只需要用户。此外,您的一些插件或主题可能会更改默认注册行为。

结束

相关推荐

更改WordPress MultiSite中媒体上载文件夹的路径

有人知道如何删除/sites/#blog_id/ 从多站点媒体路径?我们在main中上传了所有图像/public_html/images/ 当它连接到媒体库时,由于WPMU广告,子域上的所有图像都会被破坏/sites/#blog_id/ 为每个子域单独设置。这就产生了在不同的博客中使用相同股票图像的问题。我正在寻找一个解决方案,使所有上传的图像存储在一个地方,并可以从任何子博客平等访问。