如何从functions.php中在自定义登录中显示wp-errors



我试图在login.php上获取WP-ERROR,我确实通过function.php中创建的函数在URL中获取错误。

这在我的functions.php

add_filter('login_redirect', 'my_login_redirect', 10, 3);
function my_login_redirect($redirect_to, $requested_redirect_to, $user) {
    $login_page  = home_url('/login/');
    if (is_wp_error($user)) {
        //Login failed, find out why...
        $error_types = array_keys($user->errors);
        if (is_array($error_types) && !empty($error_types)) {
            $error_type = $error_types[0];
        }
        wp_redirect( $login_page . "?login=failed&reason=" . $error_type ); 
        exit;
    } else {
        //Login OK - redirect to another page?
        return home_url();
    }
}

,但我也希望在我的login.php

上显示错误

首先,您需要为登录页面创建自定义模板。请参阅参考。

之后,您可以使用$_GET['reason']在模板中显示原因变量值。请参阅参考。

您可以做这样的事情:

<?php
if( isset( $_GET['reason'] ) ){
    $reason = $_GET['reason'];
    echo "Login error: " . $reason;
}
?>

最新更新