登录用户名和密码为空后重定向

时间:2013-04-28 作者:Radolino

我选择在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;
}

1 个回复
最合适的回答,由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();
  }
}

结束

相关推荐

How to change the login URL

我想根据客户端请求更改登录URL。所以,不是mysite。com/wp登录。php或mysite。com/wp管理员这就是我的网站。com/someotherpagename。php或mysite。com/someotherpagename我不想使用/登录。根据客户的说法,这太明显了。提前谢谢。