用户登录后如何重定向到其名字调用的页面?

时间:2014-02-22 作者:user48008

我想知道用户登录到名为(注册时使用的名称)的页面后如何重定向。

示例:用户名或名字是John,登录后应重定向到网站。通信/约翰·佩奇。

我试图结合这两个例子,但运气不好。

add_filter( \'login_redirect\', \'ckc_login_redirect\' ); 
function ckc_login_redirect() {
    // Change this to the url to Updates page.
    return home_url( \'/Updates\' ); 
}
&;

global $current_user;
get_currentuserinfo();
echo \'Username: \' . $current_user->user_login . "\\n";
echo \'User email: \' . $current_user->user_email . "\\n";
echo \'User first name: \' . $current_user->user_firstname . "\\n";
echo \'User last name: \' . $current_user->user_lastname . "\\n";
echo \'User display name: \' . $current_user->display_name . "\\n";
echo \'User ID: \' . $current_user->ID . "\\n";
请帮助PHP新手:)

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

在函数中尝试以下代码。php:

function my_login_redirect( $redirect_to, $url, $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
            $redirect_to = admin_url();
        } else {
            $redirect_to = site_url( \'/\' . $user->user_login ); // Or $user->first_name
        }
    }

    return $redirect_to;
}
add_filter( \'login_redirect\', \'my_login_redirect\', 10, 3 );

SO网友:Shazzad

试试这个-

function wpse_login_redirect( $redirect_to, $url, $user ) {
    if ( ! is_wp_error( $user ) && !empty( $user->first_name ) ) {
        $redirect_to = site_url( sanitize_title_with_dashes($user->first_name) );
    }
    return $redirect_to;
}
add_filter( \'login_redirect\', \'wpse_login_redirect\', 10, 3 );
但是,正如@ialocin所说,名字不是唯一的,所以不确定在某些情况下这是一种合适的方法。然而,从另一个角度来看,这似乎也没问题,因为您只为登录的用户执行此操作,所以两个john应该在同一个页面上查看自己的配置文件数据/john

结束

相关推荐

user_login vs. user_nicename

当你打电话给get_users() 函数,则返回用户对象的列表。每个用户都有许多属性。两者的区别是什么user_login 和user_nicename 在这些为每个用户返回的属性中?URL中显示这两个属性中的哪一个?(我这样问是因为这两个属性在我的情况下是相同的!)。