it-swarm.com.de

So erhalten Sie Anmeldefehlermeldungen für eine benutzerdefinierte Vorlage

Ich möchte das Anmeldeformular anzeigen und die Anmeldung auf derselben Seite ausführen, sodass bei einem Anmeldefehler die Fehlermeldungen auf derselben Seite angezeigt werden.

Ich habe diese Funktion hinzugefügt:

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;
    }
}

Wie kann ich nach dem Hinzufügen der obigen Funktion die Fehlermeldung in der benutzerdefinierten Seitenvorlage anzeigen?

2
jay

Eine Möglichkeit, die Fehlermeldung auf Ihrer benutzerdefinierten Anmeldeseite zu erhalten, ist die Verwendung von wp_login_failed hook. Es könnte ungefähr so ​​aussehen:

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;
}

Natürlich sollten Sie wp_redirect in Abhängigkeit von den von Ihnen verwendeten Permalinks ändern.

Dann können Sie in Ihrer benutzerdefinierten Seitenvorlage das login_error-Flag überprüfen und eine Fehlermeldung anzeigen:

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