我想知道用户登录到名为(注册时使用的名称)的页面后如何重定向。
示例:用户名或名字是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新手:)
最合适的回答,由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
页