我使用以下代码使用自定义wordpress登录表单。我的网站侧栏中有此表单:
<?php
if ( ! is_user_logged_in() ) { // Display WordPress login form:
$args = array(
\'redirect\' => admin_url(),
\'form_id\' => \'loginform-custom\',
\'label_username\' => __( \'Username\' ),
\'label_password\' => __( \'Password ),
\'label_remember\' => __( \'Remember Me\' ),
\'label_log_in\' => __( \'Log In\' ),
\'remember\' => true
);
wp_login_form( $args );
} else { // If logged in:
echo \'you are already logged in\';
wp_loginout( home_url() ); // Display "Log Out" link.
echo " | ";
wp_register(\'\', \'\'); // Display "Site Admin" link.
}
?>
在函数中。php页面,我正在使用以下代码
redirect users to the homepage 登录后:
function my_login_redirect( $redirect_to, $request, $user ){
//is there a user to check?
if( isset( $user->roles ) && is_array( $user->roles ) ) {
//check for admins
if( in_array( "administrator", $user->roles ) ) {
// redirect them to the default place
return $redirect_to;
} else {
return home_url();
}
}
else {
return $redirect_to;
}
}
add_filter("login_redirect", "my_login_redirect", 10, 3);
My question is:, 在用户登录后,是否有办法通过更改上述代码或使用更好的代码将用户重定向到“推荐人页面(他们登录的页面)”?
提前谢谢。
最合适的回答,由SO网友:s_ha_dum 整理而成
关键部分就在这里--\'redirect\' => admin_url(),
在您的第一个代码块中。无论您将其设置为什么,都将重定向。如果你正在重定向每个人,我看不出第二个块的原因。
我找不到“此页”的函数,所以您可能想要$_SERVER[\'REQUEST_URI\']
$args = array(
\'redirect\' => esc_url($_SERVER[\'REQUEST_URI\']),
\'form_id\' => \'loginform-custom\',
\'label_username\' => __( \'Username\' ),
\'label_password\' => __( \'Password\' ),
\'label_remember\' => __( \'Remember Me\' ),
\'label_log_in\' => __( \'Log In\' ),
\'remember\' => true
);
wp_login_form( $args );
小心
$_SERVER
变量:
http://markjaquith.wordpress.com/2009/09/21/php-server-vars-not-safe-in-forms-or-links/