wake-up-neo.net

Verhindern Sie, dass wp_login_form () bei Fehlern zu wp-admin umleitet

Ich habe mit wp_login_form() ein Anmeldeformular im Front-End meiner Website erstellt. Wenn der Benutzer jedoch einen falschen Benutzernamen/ein falsches Kennwort eingibt, wird er zum Anmeldeformular von wp-admin weitergeleitet.

Wie können Sie stattdessen Fehlermeldungen über dem Anmeldeformular anzeigen? Im Idealfall möchte ich nicht, dass der Benutzer jemals den Wordpress-Admin-Bereich sehen muss.

Ich habe versucht, den Haken redirect_invalid_login() zu verwenden, aber dies scheint nicht zu funktionieren.

6
slm_92

füge einfach den folgenden Code zu deiner function.php hinzu. Es leitet den Benutzer zurück, von dem aus das Anmeldeformular gesendet wurde.

add_action( 'wp_login_failed', 'my_front_end_login_fail' );  // hook failed login

function my_front_end_login_fail( $username ) {
   $referrer = $_SERVER['HTTP_REFERER'];  // where did the post submission come from?
   // if there's a valid referrer, and it's not the default log-in screen
   if ( !empty($referrer) && !strstr($referrer,'wp-login') && !strstr($referrer,'wp-admin') ) {
      wp_redirect( $referrer . '?login=failed' );  // let's append some information (login=failed) to the URL for the theme to use
      exit;
   }
}
11
noor