在开发过程中有时候会遇到wordpress用户的密码丢失,无法登录后台的情况。而在邮件功能受到限制的情况下,wordpress找回密码也不好用。我们可以写一段程序来重设wordpress的用户密码。
wordpress的密码机制很简单,通过wordpress本身的HashPassword来对密码进行加密。在整个数据库中,只有users表有用户密码,因此只需要更新这张表中的密码字段即可。好了,直接上代码:
$password = '新的密码';
$user = '要修改的用户的登录名';
require_once(dirname(__FILE__).'/wp-load.php');
global $wp_hasher,$wpdb;
if(empty($wp_hasher)){
require_once( ABSPATH.'/wp-includes/class-phpass.php');
$wp_hasher = new PasswordHash(8, TRUE);
}
$password = $wp_hasher->HashPassword($password);
$wpdb->query("UPDATE $wpdb->users SET user_pass='$password' WHERE user_login='$user'");
将上面的代码保存为一个php文档,修改$password和$user的值,ftp上传到网站根目录,再访问一次该文档即可。更新之后记得删除。
下载文档 你需要检查下载的php文档编码是否为utf8
上面的代码关键之处即在对要保存到数据库中的密码的获取。wordpress的用户密码在数据库中不是简单的md5加密,而是有一个即时的随机加密过程。你可以自己测试echo?$password = $wp_hasher->HashPassword($password);的值随着时间的变化是不同的,因此,我们也不能使用这种方法来和数据库中的密码进行匹配。
很有意思啊,来关注你了哦,记得互收听
(强)