Как перевести сообщение «неправильный пароль»

Я пытаюсь перевести ответ «неправильного пароля» при входе в систему.

Я обновляю wp-login.php, но я не нахожу там никакого обработчика неправильного пароля, неправильного пользователя.

Может быть, такие общие тесты обрабатываются где-то еще?

Спасибо.

Мы также можем использовать фильтр wp_login_errors доступный в wp-login.php для выполнения вышеуказанного. Используя тот же фильтр, вы также можете настроить другие сообщения об ошибках, например, registration , checkmail и т. Д.

Используйте приведенный ниже код в файле functions.php активной темы.

 add_filter( 'wp_login_errors', 'override_incorrect_password_msg', 10, 2 ); function override_incorrect_password_msg( $errors, $redirect_to ) { if( isset( $errors->errors['incorrect_password'] ) ) { $errors->errors['incorrect_password'][0] = 'Your new message'; } return $errors; } 

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

 add_action( 'wp_login_failed', 'wpse_end_login_fail' ); function wpse_end_login_fail( $username ) { echo $username; // Go on with what you want to do with the login failed username } 

Вышеуказанное даст вам имя пользователя

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

введите описание изображения здесь

Текст поступает из wp_authenticate_username_password() в wp-includes/user.php . Нет другого фильтра, кроме gettext . Итак, это работает:

 add_filter( 'gettext', function( $translation, $text, $domain ) { if ( 'default' !== $domain ) return $translation; if ( '<strong>ERROR</strong>: The password you entered for the username <strong>%1$s</strong> is incorrect. <a href="%2$s" title="Password Lost and Found">Lost your password</a>?' !== $text ) return $translation; return 'Custom password message'; }, 10, 3 ); 

Скриншот