你有想過去掉 WordPress 的密碼重設功能嗎?在默認模式下,WordPress 是允許註冊的用户通過郵件來重設密碼。有些朋友可能想禁用這個重設密碼的功能,這篇文章,我們來探討下如果實現。
為什麼要移除 WordPress 的密碼重設功能?
如果你允許讀者在你的 WP 網站裏註冊,那麼註冊用户肯定免不了忘記密碼,就會經常性的重設。過多的重設密碼,可能會佔用服務器資源;還有就是有些站長有強迫症,就不讓你改密碼……或者你的網站只是一個演示站,沒必要用户改密碼。林林總總的問題,不一而足,好吧,來説説怎麼移除 WordPress 的密碼重置功能。
方法一、使用 Plainview Protect Passwords 插件
使用插件是最身心的事,適合那些不喜歡折騰的博主。 Plainview Protect Passwords 插件是非常強大的,甚至可以選擇禁止某一用户組,而不是所有用户。
首先,安裝和激活這個插件,進入到配置頁面:
設置界面一目瞭然,你可以全選,也可以選擇某幾個用户組,完全自定義來操作。當設置好某一用户組不能修改密碼之後,可以看到該用户在後台就不能修改密碼了:
方法二、改源代碼修改
這個方法不適合初學者,畢竟要懂得些許代碼知識。在修改前需要對整個網站做個備份,以防萬一。
首先新建一個 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 文件夾下。
然後,回到網站後台,去插件選項裏激活這個插件。其實這就相當於自己寫了個插件而已。這段代碼會禁止所以用户通過郵件修改密碼,包括管理員自己。但是管理員可以在後台重設密碼。
發表回覆