将www.mainsite.com/subsite/wp-login重定向至www.mainsite.com/wp-login

时间:2016-11-22 作者:roark

我正在使用groupblog功能,因此需要多站点。

如果新用户(未登录)直接访问任何groupblog,即。一个子网站,点击登录按钮,他被重定向到www.mainsite。com/subsite/wp登录。php,而我希望他访问www.mainsite。com/wp登录。php。我该怎么做?

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

我想是吧www.mainsite.com 是主要博客和www.mainsite.com/subtitle 是一个动态的子博客。您可以为此使用MU api:

add_action("init", function(){
    global $pagenow;

    if ( \'wp-login.php\' !== $pagenow ) return;

    global $blog_id;

    $main_blog_ID = 1; // main site ID (use get_current_blog_id() to get ID)

    if ( (int) $blog_id !== (int) $main_blog_ID ) {
        switch_to_blog( $main_blog_ID );
        wp_redirect( wp_login_url() );
        exit;
    }
});
希望这有帮助。

SO网友:George Stephanis

您也可以这样做,这与上面的选项类似,但保留了一些选项,并使用了更好的操作和一些更突出的功能:

<?php

/**
 * Plugin Name: Multisite Login Consolidation
 * Author: georgestephanis
 * License: GPLv2+
 * Requires PHP: 7
 * Network: true
 */

add_action( \'login_init\', function() {
    if ( ! is_multisite() ) {
        return;
    }
    if ( ! is_main_site() ) {
        switch_to_blog( get_main_site_id() );
        wp_safe_redirect( wp_login_url( $_REQUEST[\'redirect_to\'] ?? null ) );
        exit;
    }
} );
这里是一个要点,如果这更容易下载的文件。它应该能够安装和网络激活相当简单。

https://gist.github.com/georgestephanis/ffa8617e066a39fc80fa3d487535071b