登录重定向在服务器上不起作用

时间:2014-07-29 13:44:07

标签: php wordpress plugins

我为wordpress开发了一个插件,我想在登录后将不同的角色重定向到不同的页面。我使用下面的代码,它适用于我的localhost(我使用xamp),但是当我将我的插件上传到服务器时,它不起作用!在登录后,它只会保留在"wp-login.php"中,当然页面会变白。

代码:

function loginRedirect( $redirect_to, $request, $user ){   
    global $user;
    if ( isset( $user->roles ) && is_array( $user->roles ) ) {
        //check for admins
        if ( in_array( 'administrator', $user->roles ) ) 
        {
            // redirect them to the default place
            return home_url()."/wp-admin/";
        } else if ( in_array( 'manager', $user->roles ) )
        {
           return  home_url()."/wp-admin/admin.php?page=creat_mysite_list_entry";             
        }
        else if ( in_array( 'jobholder', $user->roles ) )
        {
            if(have_contract_user($user->ID))
            {
                return home_url()."/wp-admin/admin.php?page=creat_mysite_register_entry";
            }
            else
            {
                return wp_logout_url();
            }
        }
    }                          
 }
add_filter("login_redirect", "loginRedirect", 10, 3);

1 个答案:

答案 0 :(得分:0)

您可以尝试使用ob_start()ob_flush()

ob_start

在重定向的顶部,ob_flush结束 像这样

ob_start();
header('Location:custompage.php');
ob_flush();