如何在自定义模板上获取登录错误消息

时间:2015-02-08 作者:jay

我想在同一页上显示登录表单并处理登录,以便如果有任何登录错误,它应该在同一页上显示错误消息。

我添加了此功能:

add_filter( \'authenticate\', \'custom_authenticate_username_password\', 30, 3);
function custom_authenticate_username_password( $user, $username, $password ) {
    if ( is_a($user, \'WP_User\') ) { return $user; }

    if ( empty($username) || empty($password) )
    {
        $error = new WP_Error();
        $user  = new WP_Error(\'authentication_failed\', __(\'<strong>ERROR</strong>: Invalid username or incorrect password.\'));

        return $error;
    }
}
添加上述功能后,如何在自定义页面模板上实际显示错误消息?

1 个回复
SO网友:IlmarsL

将错误消息发送到自定义登录页面的一种方法是使用wp_login_failed 钩它可能看起来像这样:

add_action( \'wp_login_failed\', \'my_login_fail\' );  // hook failed login

function my_login_fail( $username ) {
    //redirect to custom login page and append login error flag
    wp_redirect(home_url( \'?page_id=4\' ) . "&login_error" );  
    exit;
}
显然你应该修改wp_redirect 取决于您使用的永久链接。

然后,在自定义页面模板中,您可以检查login\\u错误标志并显示错误消息:

if (isset($_GET[\'login_error\'])){
    //print error message or do something else
}

结束