除了非常有用的Plugin CODE @birgire added in his answer, 在“密码重置”页面上隐藏密码文本(键入密码字段时)也可能很有用。由于使用此代码,我们将有“确认密码”字段,因此在键入时显示密码是没有意义的。
WordPress core没有添加确认密码字段的原因主要是WordPress在您键入密码时已经显示了密码文本。确认密码字段是该功能的替代项,当用户在其他人面前键入时,它会非常有用(更安全)。
因此,我建议您在birgire的插件代码之外添加以下代码:
add_action( \'login_enqueue_scripts\', function ()
{
if ( ! wp_script_is( \'jquery\', \'done\' ) ) {
wp_enqueue_script( \'jquery\' );
}
// this line basically hides the password text
wp_add_inline_script( \'jquery-migrate\', \'jQuery(document).ready(function(){ jQuery( "#pass1" ).data( "reveal", 0 ); });\' );
}, 1 );
当然,在这种情况下,WordPress不会自动为您生成密码,因为显然是自动生成密码&;那么隐藏密码文本就没有意义了,因为用户将无法看到它&;在确认密码字段中键入。
无论如何,如果您想使用此插件,那么最终的插件代码将是:
<?php
/**
* Plugin Name: Confirm New Login Password
* Plugin URI: https://wordpress.stackexchange.com/a/262851/110572
*/
add_action( \'resetpass_form\', function( $user )
{ ?> <p class="user-wpse-pass2-wrap">
<label for="wpse-pass2"><?php _e( \'Confirm new password\' ) ?></label><br />
<input type="password" name="wpse-pass2" id="wpse-pass2" class="input"
size="20" value="" autocomplete="off" />
</p> <?php
} );
add_action( \'validate_password_reset\', function( $errors )
{
if ( isset( $_POST[\'pass1\'] ) && $_POST[\'pass1\'] != $_POST[\'wpse-pass2\'] )
$errors->add( \'password_reset_mismatch\', __( \'The passwords do not match.\' ) );
} );
add_action( \'login_enqueue_scripts\', function ()
{
if ( ! wp_script_is( \'jquery\', \'done\' ) ) {
wp_enqueue_script( \'jquery\' );
}
wp_add_inline_script( \'jquery-migrate\', \'jQuery(document).ready(function(){ jQuery( "#pass1" ).data( "reveal", 0 ); });\' );
}, 1 );