如果删除WordPress的密码重设功能?

0
20

你有想过去掉WordPress的密码重设功能吗?在默认模式下,WordPress是允许注册的用户通过邮件来重设密码。有些朋友可能想禁用这个重设密码的功能,这篇文章,我们来探讨下如果实现。

为什么要移除WordPress的密码重设功能?

如果你允许读者在你的WP网站里注册,那么注册用户肯定免不了忘记密码,就会经常性的重设。过多的重设密码,可能会占用服务器资源;还有就是有些站长有强迫症,就不让你改密码……或者你的网站只是一个演示站,没必要用户改密码。林林总总的问题,不一而足,好吧,来说说怎么移除WordPress的密码重置功能。

方法一、使用Plainview Protect Passwords插件

使用插件是最身心的事,适合那些不喜欢折腾的博主。Plainview Protect Passwords插件是非常强大的,甚至可以选择禁止某一用户组,而不是所有用户。

首先,安装和激活这个插件,进入到配置页面:

如果删除WordPress的密码重设功能?

设置界面一目了然,你可以全选,也可以选择某几个用户组,完全自定义来操作。当设置好某一用户组不能修改密码之后,可以看到该用户在后台就不能修改密码了:

如果删除WordPress的密码重设功能?

方法二、改源代码修改

这个方法不适合初学者,毕竟要懂得些许代码知识。在修改前需要对整个网站做个备份,以防万一。

首先新建一个 disable-password-reset.php 这样的PHP文件,把下面代码复制进去,保存。

<?php /*  * Plugin Name: Disable Password Reset  
* Description: Disable password reset functionality. 
Only users with administrator role will be able to 
change passwords from inside admin area.   
* Version: 1.0  * Author: WPBeginner  
* Author URI: http://wpbeginner.com  
*/   class Password_Reset_Removed {    function __construct()    
{     add_filter( 'show_password_fields', array( $this, 'disable' ) );     
add_filter( 'allow_password_reset', array( $this, 'disable' ) );     
add_filter( 'gettext',              array( $this, 'remove' ) );   }    
function disable()    {     
if ( is_admin() ) {       
$userdata = wp_get_current_user();       
$user = new WP_User($userdata->ID);       
if ( !empty( $user->roles ) && is_array( $user->roles ) 
&& $user->roles[0] == 'administrator' )         return true;     }     
return false;   }    function remove($text)    
{     return str_replace( array('Lost your password?', 
'Lost your password'), '', trim($text, '?') );    } }  
$pass_reset_removed = new Password_Reset_Removed(); ?>

然后,通过FTP,将这个文件传输到/wp-content/plugins 文件夹下。

如果删除WordPress的密码重设功能?

然后,回到网站后台,去插件选项里激活这个插件。其实这就相当于自己写了个插件而已。这段代码会禁止所以用户通过邮件修改密码,包括管理员自己。但是管理员可以在后台重设密码。

WPFOOT
WPFOOT里的主题与插件皆免费下载,若需要汉化主题或者模板调试服务,敬请联系QQ: 465045674

留下一个评论