将所有用户(网络管理员除外)从主站点重定向到子站点

时间:2014-10-14 作者:Iurie

我安装了WP多站点/多网络。我需要的是重定向all non-logged 还有all logged in 除登录的网络管理员外,来自主站点示例的用户。com(包括所有嵌套页面、帖子、类别等)访问子网站。实例com,这是一个隔离的多站点网络。它们共享同一个数据库。网络管理员只有在登录子网站后才能访问主站点。实例com。这样,只有登录的网络管理员才能访问主站点,例如。com。

UPDATE

@seamus-leahy解决方案有效,但仅部分有效。我在多站点多网络安装中使用他的功能,并且此配置中的所有网络都像单独的WP安装一样工作,因此网络示例。当网络管理员已登录子网站时,com将不会自动识别和登录。实例com(网络2),但从示例中注销。com(网络1)。这意味着在此上下文中,网络管理员也无法访问主网络示例。com。如何解决这个问题?

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

你需要与template_redirect 钩住您将检查站点和用户的位置,然后根据需要重定向。

function redirect_to_subsite() {
    if( is_main_site() && !current_user_can(\'manage_network\') ) {
        $blog_id = 5; // <<----- Update the ID to the subsite blog ID you want to redirect to
         wp_redirect( get_site_url( $blog_id ) );
         exit();
     }
 }
 add_action( \'template_redirect\', \'redirect_to_subsite\' );

结束

相关推荐

更改WordPress MultiSite中每个单独站点的语言

我目前有一个多站点设置,我目前有两个站点,一个是英语(默认),另一个是法语。因为我不能有单独的配置文件和单独的语言文件夹,所以我需要能够让每个语言站点使用各自的配置文件和语言文件夹。前端用户的po文件。对于这两个站点,后端的英语都可以。我该怎么做?我在设置中没有看到语言的选择。有插件吗?我可以添加一行简单的代码吗?请帮帮我!谢谢