WordPress教程

WordPress禁止通过邮件重置密码方法

阿里云

如果你忘记了自己的管理员密码,最简单的重置方法就是在 WordPress 登陆界面点击忘记密码,通过发送邮件的方法重置,不过便利的同时也会带来一些弊端,比如恶意点击重置,导致收到骚扰邮件,甚至通过邮件来获取后台,所以有时候为了安全,我们最好禁用 WordPress 重置密码功能。

如果要禁止所有用户使用这个功能,可以在主题的 functions.php 添加下面的代码:

  1. function disable_password_reset() {
  2.    return false;
  3. }
  4. add_filter ( 'allow_password_reset', 'disable_password_reset' );
也想出现在这里?联系我们
创客主机

当用户再次点击重置密码时,就会提示不能重设该用户的密码,邮件重置密码就禁用掉了如上图。

禁止特定用户

如果仅仅是禁止某些特定的用户使用这个功能,可以在主题的 functions.php 添加下面的代码:

  1. add_filter('allow_password_reset', 'no_reset', 10, 2 );
  2. function no_reset( $bool, $user_id ) {
  3. 	$ids = array( 3, 10 ); // 要禁止的用户ID
  4. 	if ( in_array( $user_id, $ids ) )
  5. 		return false;
  6. 	return true;
  7. }

扩展应用

那么如何才能禁止用户编辑“我的个人资料”中的电子邮件,今天就分享下,通过 jQuery 给表单添加禁用 disabled="disabled" 或 只读 readonly="readonly" 属性来禁止用户编辑字段的方法。将下面的代码添加到主题的 functions.php 文件即可:

  1. /**
  2.  * WordPress 禁止用户编辑个人资料的某些字段
  3.  */
  4. global $pagenow;
  5. if ( !current_user_can( 'manage_options' ) && $pagenow == 'profile.php' ) {
  6. 	add_action( 'admin_footer', 'disable_userprofile_fields' );
  7. }
  8.  
  9. function disable_userprofile_fields() {
  10. 	?>
  11. 	<script>
  12. 		jQuery(document).ready( function($) {
  13.  
  14. 			//禁止编辑“电子邮件”(input 举例)
  15. 			if ( $('input[name=email]').length ) {
  16. 				$('input[name=email]').attr("disabled", "disabled");
  17. 			}
  18.  
  19. 			//禁止编辑“个人说明”(textarea 举例)
  20. 			if ( $('textarea[name=description]').length ) {
  21. 				$('textarea[name=description]').attr("readonly", "readonly");
  22. 			}
  23.  
  24. 			//禁止编辑“公开显示为”(select 举例)
  25. 			if ( $('select[name=display_name]').length ) {
  26. 				$('select[name=display_name]').attr("disabled", "disabled");
  27. 			}
  28.  
  29. 		});
  30. 	</script>
  31. 	<?php
  32. }

以上代码可以实现 非管理员用户无法编辑 电子邮箱、个人说明、公开显示为 。你可以根据自己的需要进行修改,只要查看源代码找到表单的 name 属性,修改一下就可以禁止修改任何字段。

WordPress 禁止通过邮件重置密码方法

已有 316 人购买
查看演示升级 VIP立刻购买

收藏
(0)

发表回复

热销模板

Ashade - 作品展示摄影相册WordPress汉化主题
LensNews

本站承接 WordPress / PbootCMS / DedeCMS 等
系统建站、仿站、开发、定制等业务!