отключить WP_error: authentication_failed

Я изменяю свой wp-login.php, но изнутри functions.php (чтобы не взламывать ядро).

Мне нужно отключить один WP_error с кодом: authentication_failed.

если я взломал ядро ​​и изменил wp-login.php на код:

foreach ( $wp_error->get_error_codes() as $code ) { $severity = $wp_error->get_error_data( $code ); foreach ( $wp_error->get_error_messages( $code ) as $error_message ) { if ( 'message' == $severity ) $messages .= ' ' . $error_message . "<br />\n"; else $errors .= ' ' . $error_message . "<br />\n"; } } 

чтобы:

 foreach ( $wp_error->get_error_codes() as $code ) { $severity = $wp_error->get_error_data( $code ); if($code !=='authentication_failed'){ <======= ADDED foreach ( $wp_error->get_error_messages( $code ) as $error_message ) { if ( 'message' == $severity ) $messages .= ' ' . $error_message . "<br />\n"; else $errors .= ' ' . $error_message . "<br />\n"; } } } 

Оно работает. Но я не хочу взломать ядро, есть ли способ отключить его от functions.php?

Solutions Collecting From Web of "отключить WP_error: authentication_failed"

Вы можете использовать подключаемую функцию wp_authenticate для переопределения ядра.

https://developer.wordpress.org/reference/functions/wp_authenticate/

Важная осторожность: проверьте этот код на песочнице перед развертыванием в прямом эфире!

 function wp_authenticate($username, $password) { $username = sanitize_user($username); $password = trim($password); $user = apply_filters( 'authenticate', null, $username, $password ); if ( $user == null ) { $user = new WP_Error( 'authentication_failed', __( '<strong>ERROR</strong>: Invalid username or incorrect password.' ) ); } $ignore_codes = array( 'authentication_failed' ); if ( is_wp_error( $user ) && !in_array( $user->get_error_code(), $ignore_codes ) ) { do_action( 'wp_login_failed', $username ); } return $user; } add_action( 'init', 'wp_authenticate' );