Перенаправление после пустого имени пользователя и пароля

Я решил отобразить форму входа на первую страницу моего сайта WordPress. Если пользователь регистрируется успешно, он перенаправляется на определенную веб-страницу. Если он вводит неверный пароль, он снова перенаправляется на страницу входа в систему. Проблема возникает, когда кто-то не вводит имя пользователя и пароль: он перенаправляется на страницу входа в систему WordPress.

Как я могу перенаправить пустые логины пользователя на главную страницу входа?

это код, который я использую для перенаправления неудачных попыток:

add_filter('login_redirect', '_catch_login_error', 10, 3); function _catch_login_error($redir1, $redir2, $wperr_user) { if(!is_wp_error($wperr_user) || !$wperr_user->get_error_code()) return $redir1; switch($wperr_user->get_error_code()) { case 'incorrect_password': case 'empty_password': case 'invalid_username': default: wp_redirect(home_url()); // modify this as you wish } return $redir1; } 

Solutions Collecting From Web of "Перенаправление после пустого имени пользователя и пароля"

Проверьте наличие пустого пользователя в массиве $_REQUEST :

 if ( empty( $_REQUEST['user_login'] ) // && or || empty( $_REQUEST['user_pass'] ) return $redirect_to_whereever_you_want; 

Но этот фильтр опаздывает. Он вызывается после входа пользователя в систему. Вы должны использовать действие 'wp_authenticate' , это одно из самых ранних действий в процессе входа в систему:

 add_action( 'wp_authenticate', '_catch_empty_user', 1, 2 ); function _catch_empty_user( $username, $pwd ) { if ( empty( $username ) ) { wp_safe_redirect( $redirect_to_whereever_you_want ); exit(); } }