web-dev-qa-db-ja.com

ログイン後の自動リダイレクト

マルチサイトでは、このコードはログインの後にユーザー(作者)を/wp-admin/post-new.phpにリダイレクトします....しかしまた私(super admin)にリダイレクトしますこれを防ぐことができますか?

function primary_login_redirect( $redirect_to, $request_redirect_to, $user )
{
    if ($user->ID != 0) {
        $user_info = get_userdata($user->ID);
        if ($user_info->primary_blog) {
            $primary_url = get_blogaddress_by_id($user_info->primary_blog) . 'wp-admin/post-new.php';
            if ($primary_url) {
                wp_redirect($primary_url);
                die();
            }
        }
    }
    return $redirect_to;
} 
add_filter('login_redirect','primary_login_redirect', 100, 3);
1
Ghinnersmee

is_super_admin()に対してテストすることができます。私のテストでは次のように動作します。

function primary_login_redirect( $redirect_to, $request_redirect_to, $user ) {
    if ( is_a( $user, 'WP_User' ) && ! is_super_admin( $user->ID ) ) {
        if ( $user_info->primary_blog ) {
        $user_info = get_userdata( $user->ID );
            $primary_url = get_blogaddress_by_id( $user_info->primary_blog ) . 'wp-admin/post-new.php';
            if ( $primary_url ) {
                wp_redirect( $primary_url );
                die();
            }
        }
    }
    return $redirect_to;
} 
add_filter( 'login_redirect', 'primary_login_redirect', 100, 3 );

is_a()チェックはログアウト時に私が得たいくつかの通知をクリアします。

編集:あなただけのスーパー管理者のために別のリダイレクトURLをしたい場合は、私はこのようなものに再構築すると思います:

function primary_login_redirect( $redirect_to, $request_redirect_to, $user ) {
    if ( is_a( $user, 'WP_User' ) ) {
        if ( ! is_super_admin( $user->ID ) ) {
            $user_info = get_userdata( $user->ID );
            if ( $user_info->primary_blog )
                $primary_url = get_blogaddress_by_id( $user_info->primary_blog ) . 'wp-admin/post-new.php';
        } else { // super admins
            $primary_url = network_admin_url( 'sites.php' );
        }
        if ( $primary_url ) {
            wp_redirect( $primary_url );
            die();
        }
    }
    return $redirect_to;
} 
add_filter( 'login_redirect', 'primary_login_redirect', 100, 3 );
2
DrewAPicture