我选择在wordpress网站的第一页显示登录表单。如果用户成功登录,他将被重定向到特定网页。如果他输入了错误的密码,他会再次被重定向到登录页面。如果有人没有输入用户名和密码,就会出现问题:他会被重定向到wordpress管理员登录页面。
如何将空用户名登录重定向回主登录页?
这是我用来重定向失败尝试的代码:
add_filter(\'login_redirect\', \'_catch_login_error\', 10, 3);
function _catch_login_error($redir1, $redir2, $wperr_user)
{
if(!is_wp_error($wperr_user) || !$wperr_user->get_error_code()) return $redir1;
switch($wperr_user->get_error_code())
{
case \'incorrect_password\':
case \'empty_password\':
case \'invalid_username\':
default:
wp_redirect(home_url()); // modify this as you wish
}
return $redir1;
}
最合适的回答,由SO网友:Ralf912 整理而成
在中检查空用户登录$_REQUEST 阵列:
if ( empty( $_REQUEST[\'user_login\'] ) // && or || empty( $_REQUEST[\'user_pass\'] )
return $redirect_to_whereever_you_want;
但这个过滤器太晚了。它被称为
after 用户已登录。您必须使用
\'wp_authenticate\' 操作,这是登录过程中最早的操作之一:
add_action( \'wp_authenticate\', \'_catch_empty_user\', 1, 2 );
function _catch_empty_user( $username, $pwd ) {
if ( empty( $username ) ) {
wp_safe_redirect( $redirect_to_whereever_you_want );
exit();
}
}