web-dev-qa-db-fra.com

Empêcher wp_login_form () de rediriger vers wp-admin en cas d'erreur

J'ai créé un formulaire de connexion sur le front-end de mon site en utilisant wp_login_form(). Cependant, lorsque l'utilisateur entre un nom d'utilisateur/mot de passe incorrect, il est redirigé vers le formulaire de connexion wp-admin.

Comment pouvez-vous plutôt afficher des messages d'erreur au-dessus du formulaire de connexion? Idéalement, je ne veux pas que l'utilisateur ait à voir la section administrateur de Wordpress.

J'ai essayé d'utiliser le crochet redirect_invalid_login() mais cela ne semble pas fonctionner?

6
slm_92

ajoutez simplement le code suivant à votre function.php. il redirigera l'utilisateur à partir duquel le formulaire de connexion est soumis.

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