Umleitung des Anmeldeformulars

Ich verwende momentan ein Thema und das Login-Formular auf einer Website. Wenn ich mich korrekt anmelde, wird der Nutzer an die entsprechende URL weitergeleitet.

Leider, wenn ich einen Fehler in Benutzername / Passwort mache oder wenn alle Felder Benutzername / Passwort leer sind, leitet es dich an wp-login.php , welches seine Box beim User schüttelt. Und stört konsistente Markenerfahrung. Ich möchte alle Fehler auf meiner benutzerdefinierten Anmeldeseite wp-login.php , nicht im Standard wp-login.php

Also weiß jemand einen Weg, wie kann ich das tun?

Solutions Collecting From Web of "Umleitung des Anmeldeformulars"

Fügen Sie diese beiden Code-Blöcke zu functions.php oder erstellen Sie ein Plugin. Alles sollte selbsterklärend mit Kommentaren sein.

Sie können auch das jQuery Validate Plugin verwenden , um den Benutzernamen, das Passwort über Ajax zu überprüfen und diese 2 Blöcke Code für die Sicherung zu haben, wenn der Benutzer JS deaktiviert hat.

Diese zwei Codeblöcke sollten alle möglichen fehlgeschlagenen Anmeldeszenarien abdecken:

  • Beide Eingänge sind leer
  • Eine Eingabe ist leer
  • Beide Eingaben sind falsch
  • einer der Eingänge ist falsch

 //Login failed - username and password entered but incorrect add_action( 'wp_login_failed', 'damn_login_failed' ); function damn_login_failed( $user ) { $referrer = $_SERVER['HTTP_REFERER']; //Make sure we don't already have a failed login attempt to prevent double query string if ( ! strstr( $referrer, '?login=failed' ) ) { //Redirect to CURRENT page and append a querystring of login failed wp_redirect( $referrer . '?login=failed' ); } else { wp_redirect( $referrer ); } exit; } //Login failed - no username and password entered add_action( 'authenticate', 'damn_login_blank' ); function damn_login_blank( $user ) { if ( isset( $_SERVER['HTTP_REFERER'] ) ) { $referrer = $_SERVER['HTTP_REFERER']; } else { $referrer = ''; } $error = false; //Check your username and password inputs - these might be different if you changed them - 'log' is the name attribute of username and 'pwd' for password, just change to whatever you have if( isset( $_POST['log'] ) && $_POST['log'] == '' || isset( $_POST['pwd'] ) && $_POST['pwd'] == '' ) { $error = true; } //Check that we're not on the default login page if ( ! empty( $referrer ) && ! strstr( $referrer,'wp-login' ) && ! strstr( $referrer, 'wp-admin' ) && $error ) { //Make sure we don't already have a failed login attempt to prevent double query string if ( ! strstr( $referrer, '?login=failed' ) ) { //Redirect to CURRENT page and append a querystring of login failed wp_redirect( $referrer . '?login=failed' ); } else { wp_redirect( $referrer ); } exit; } }