Intereting Posts
Повторные запросы на навигационную панель, которые не могут быть кэшированы Внедрение расширенных обложек функций add_ * Добавить последнее измененное время как версия в css и js Первая страница, показывающая ACF только один раз, разрешима для отображения ACF за сообщение? Ошибка 404 на страницах подкатегорий Многостраничное доменное отображение WordPress с различными IP-адресами в настройке сети у супер администратора есть кнопки tinyMCE, а у обычного администратора нет Запросить липкие сообщения с эскизами Кнопки обмена Facebook и Twitter не работают публикация на передней панели не работает на интерфейсной странице Перенаправление страницы входа в WordPress после неудачного входа WordPress игнорирует LIMIT / posts_per_page, несмотря на то, что в wp_query WordPress: «ссылка на существующий контент» не отображает пользовательские типы сообщений Удалить href из этого кода Измените расположение add_theme_support ('custom-header') в настройке

Изменить имена индикаторов прочности пароля?

Можно ли изменить ярлыки «Слабые, средние, сильные» и т. Д. В индикаторе пароля, который используется в профиле пользователя? Меня попросили сменить слово «Слабый» на «ОК», так как этот уровень паролей приемлем для наших подписчиков. Есть ли фильтр, в который я могу подключиться?

Solutions Collecting From Web of "Изменить имена индикаторов прочности пароля?"

Текст «Слабый» передается через _x функцию, которая вызывает translate_with_gettext_context , поэтому я бы попробовал следующее:

 add_filter( 'gettext_with_context', 'wpse199813_change_password_indicatior', 10, 4 ); function wpse199813_change_password_indicatior($translations, $text, $context, $domain){ if( $text == "Weak" && $context == "password strength") return "OK"; return $translations; } 

Вы можете сделать это прямо в файле локализации темы.

Откройте файл *.pot и создайте переводы для ярлыков, которые вам нужны, например OK для Weak .

См. /wp-includes/script-loader.php password-strength-meter в строке #366 в /wp-includes/script-loader.php для справки (но ничего не меняйте).

Обновление :

Я нашел решение с помощью jQuery для аналогичной проблемы, но вам нужно упростить этот код, чтобы использовать только один счетчик паролей: как использовать скрипт Word Strength Meter WordPress по умолчанию . Также см. /wp-admin/js/user-profile.js для справки, потому что это решение довольно старое.

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

 // functions.php add_action( 'user_profile_update_errors', 'validateProfileUpdate', 10, 3 ); add_filter( 'registration_errors', 'validateRegistration', 10, 3 ); add_action( 'validate_password_reset', 'validatePasswordReset', 10, 2 ); /** * validate profile update * * @author Joe Sexton <joe.@webtipblog.com> * @param WP_Error $errors * @param boolean $update * @param object $user raw user object not a WP_User */ public function validateProfileUpdate( WP_Error &$errors, $update, &$user ) { return validateComplexPassword( $errors ); } /** * validate registration * * @author Joe Sexton <joe.@webtipblog.com> * @param WP_Error $errors * @param string $sanitized_user_login * @param string $user_email * @return WP_Error */ function validateRegistration( WP_Error &$errors, $sanitized_user_login, $user_email ) { return validateComplexPassword( $errors ); } /** * validate password reset * * @author Joe Sexton <joe.@webtipblog.com> * @param WP_Error $errors * @param stdClass $userData * @return WP_Error */ function validatePasswordReset( WP_Error &$errors, $userData ) { return validateComplexPassword( $errors ); } /** * validate complex password * * @author Joe Sexton <joe.@webtipblog.com> * @param WP_Error $errors * @param stdClass $userData * @return WP_Error */ function validateComplexPassword( $errors ) { $password = ( isset( $_POST[ 'pass1' ] ) && trim( $_POST[ 'pass1' ] ) ) ? $_POST[ 'pass1' ] : null; // no password or already has password error if ( empty( $password ) || ( $errors->get_error_data( 'pass' ) ) ) return $errors; // validate if ( ! isStrongPassword( $password ) ) $errors->add( 'pass', '<strong>ERROR</strong>: Your password must contain at least 8 characters.' ); // your complex password error message return $errors; } /** * isStrongPassword * * @author Joe Sexton <joe.@webtipblog.com> * @param string $password * @return boolean */ function isStrongPassword( $password ) { return strlen( $password ) >= 8; // your complex password algorithm } 

Если вы не можете запустить маршрут перехвата или если у вас есть пользовательская страница входа в систему, на этом посту в Tuts Plus есть удобный учебник по использованию существующего скрипта в ваших собственных формах.

Добавьте к functions.php :

 wp_enqueue_script( 'password-strength-meter' ); 

В вашем HTML:

 <form> <input type="password" name="password" /> <input type="password" name="password_retyped" /> <span id="password-strength"></span> <input type="submit" disabled="disabled" value="Submit" /> </form> 

Сценарий:

 function checkPasswordStrength( $pass1, $pass2, $strengthResult, $submitButton, blacklistArray ) { var pass1 = $pass1.val(); var pass2 = $pass2.val(); // Reset the form & meter $submitButton.attr( 'disabled', 'disabled' ); $strengthResult.removeClass( 'short bad good strong' ); // Extend our blacklist array with those from the inputs & site data blacklistArray = blacklistArray.concat( wp.passwordStrength.userInputBlacklist() ) // Get the password strength var strength = wp.passwordStrength.meter( pass1, blacklistArray, pass2 ); // Add the strength meter results switch ( strength ) { case 2: $strengthResult.addClass( 'bad' ).html( pwsL10n.bad ); break; case 3: $strengthResult.addClass( 'good' ).html( pwsL10n.good ); break; case 4: $strengthResult.addClass( 'strong' ).html( pwsL10n.strong ); break; case 5: $strengthResult.addClass( 'short' ).html( pwsL10n.mismatch ); break; default: $strengthResult.addClass( 'short' ).html( pwsL10n.short ); } // The meter function returns a result even if pass2 is empty, // enable only the submit button if the password is strong and // both passwords are filled up if ( 4 === strength && '' !== pass2.trim() ) { $submitButton.removeAttr( 'disabled' ); } return strength; } jQuery( document ).ready( function( $ ) { // Binding to trigger checkPasswordStrength $( 'body' ).on( 'keyup', 'input[name=password1], input[name=password2]', function( event ) { checkPasswordStrength( $('input[name=password]'), // First password field $('input[name=password_retyped]'), // Second password field $('#password-strength'), // Strength meter $('input[type=submit]'), // Submit button ['black', 'listed', 'word'] // Blacklisted words ); } ); }); 

Я смог исправить это с помощью этого метода. Это хорошо / плохо? Он работает, но меня будет интересовать обратная связь, если это может привести к неожиданным последствиям.

 add_filter('gettext', 'translate_text'); add_filter('ngettext', 'translate_text'); function translate_text($translated) { $translated = str_ireplace('Very Weak', 'Bad', $translated); $translated = str_ireplace('Weak', 'OK', $translated); return $translated; }