Запретить перенаправление формы входа wp() на wp-admin при наличии ошибок


Я создал форму входа в систему на интерфейсе своего сайта, используя wp_login_form(). Однако, когда пользователь вводит неправильное имя пользователя/пароль, они перенаправляются в форму входа wp-admin.

Как вы можете вместо этого отображать любые сообщения об ошибках над формой входа в систему? В идеале я не хочу, чтобы пользователю когда-либо приходилось видеть раздел администратора Wordpress.

Я пробовал использовать крючок redirect_invalid_login(), но, похоже, это не работает?

Author: smilly92, 2012-08-08

1 answers

Просто добавьте следующий код в свой function.php . он перенаправит пользователя обратно с того места, где была отправлена форма входа.

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;
   }
}
 12
Author: noor, 2013-02-05 05:48:08