有時我們希望有些用戶不能修改密碼,而有些用戶是可以修改密碼的,下面我來給大家介紹關于WordPress禁止特定用戶修改密碼方法.
方法很簡單,去掉這個公共帳號修改密碼的權限即可,我們可以在主題目錄下的functions.php中添加以下代碼:
- $disable_ids = array( 2 ); // 禁止修改密碼的用戶id
- global $current_user;
- get_currentuserinfo();
- if ( in_array( $current_user->ID, $disable_ids ) ) {
- // 后臺個人資料頁,隱藏密碼輸入框
- add_filter('show_password_fields', create_function('$nopass_profile', 'return false;'));
- // 防止通過其他手段提交密碼修改
- add_action('personal_options_update', 'no_save_pwd');
- }
- function no_save_pwd( $user_id ) {
- if(!emptyempty($_POST['pass1'])) $_POST['pass1'] = '';
- if(!emptyempty($_POST['pass2'])) $_POST['pass2'] = '';
- }
- // 禁止使用密碼找回功能
- add_filter('allow_password_reset', 'no_reset_pwd', 10, 2);
- function no_reset_pwd( $allow, $user_id ) {
- global $disable_ids;
- if ( in_array( $user_id, $disable_ids ) )
- $allow = false;
- return $allow;
- }
以上代碼第1行中的 2 是要禁止其修改密碼的用戶id,如果要禁止多個用戶修改密碼,多個id可以用半角逗號隔開,如 array( 2, 10 ),需要說明的,禁止修改密碼的用戶角色不能是管理員,因為管理員可以進入后臺 – 外觀 – 編輯,修改functions.php中的代碼.
如果你想禁止某用戶編輯個人資料我們可以參考下面方法,我們在當前主題的functions.php中添加以下代碼:
- function disable_user_profile() {
- if ( is_admin() ) {
- $user = wp_get_current_user();
- if ( 2 == $user->ID ) // 2 改成該用戶的id
- wp_die( '禁止訪問' );
- }
- }
- add_action( 'load-profile.php', 'disable_user_profile' );
當然,如果你使用前臺的用戶管理功能,以上方法就失效了.
新聞熱點
疑難解答
圖片精選