忘记密码是每个人都会遇到的事情,长时间不登录 WordPress 站点后,作为管理员的你,是不是也时常会把 WordPress 管理员的密码忘掉呢?没关系,我们可以通过多种方法来找回、重置 WordPress 的用户密码。

一、通过其他管理员修改密码

如果您的 WordPress 站点中有其他管理员,给他打个电话,请他帮你修改一下,这是最简单方便的方法了,如果他不知道怎么修改,按照下面的流程教他操作就可以了。


在 WordPress 后台左侧菜单中,点击「用户->所有用户」

在用户列表中找到你的用户名,点击编辑

在打开的新页面中,向下滚动到「新密码」部分,然后单击「生成密码」按钮。

可以直接使用生成的新密码,也可以输入你常用的密码,如果使用的是自己设置的密码,建议强度达到「强」,以保证 WordPress 安全性。

单击「更新个人资料」按钮。

二、通过电子邮件找回密码

如果你还记得自己的用户名或者电子邮件,那么可以常识使用 WordPress 的「找回密码」功能。


打开 WordPress 登录页面(如:http://yoursite.com/wordpress/wp-login.php)

点击「忘记密码?」链接

在打开的新页面中输入你的用户名或电子邮件

然后打开邮箱,然后打开邮件中的重置密码连接

输入你想要设置的新密码,点击「保存」按钮即可

如果你的服务器不能发送电子邮件,此方法则无法使用。通过其他方法修改后,可以设置 SMTP 邮件服务器以便后期使用。


三、通过 MySQL 命令行设置新密码

如果你可以通过 SSH 登录服务器,我们可以使用 MySQL 命令行为用户设置新密码。


首先,我们需要使用 mysql 命令行客户端登录 MySQL 服务器,使用如下命令登录:


mysql -u root -p;

 

然后选择你的 WordPress 站点对应的数据库,如下(wordpress_com 是数据库名称):


use wordpress_com

 

最后,使用 UPDATE 命令更新密码,user_pass 后面的字符串就是 WordPress 加密后的密码,下面示例中对应的明文密码为「123456」,当然,你可以自己生成 WordPress 加密密码字符串。


UPDATE wp_users SET user_pass = $1$rSziHLDY$399k.JuJsy.oHVp5lquJC. WHERE user_login = '用户名';

 

这个user_pass的值还接受32位MD5值,你可以使用在线Md5加密工具加密你的密码,然后填写进去。


四、主题文件functions.php添加代码重置密码

将以下代码放到主题文件functions.php中,访问一下你的WordPress站点就重置成功了哦


$user_id = 1;

$password = 'Hello';

wp_set_password( $password, $user_id );

 

需要注意$user_id需要是管理员账号的ID,一般默认都是1


五、使用官方脚本重置密码

将以下代码保存为emergency.php


?php

require './wp-blog-header.php';


function meh() {

global $wpdb;


if ( isset( $_POST['update'] ) ) {

$user_login = ( empty( $_POST['e-name'] ) ? '' : sanitize_user( $_POST['e-name'] ) );

$user_pass  = ( empty( $_POST[ 'e-pass' ] ) ? '' : $_POST['e-pass'] );

$answer = ( empty( $user_login ) ? '<div id="message" class="updated fade"><p><strong>用户名不能为空</strong></p></div>' : '' );

$answer .= ( empty( $user_pass ) ? '<div id="message" class="updated fade"><p><strong>密码不能为空</strong></p></div>' : '' );

if ( $user_login != $wpdb->get_var( "SELECT user_login FROM $wpdb->users WHERE ID = '1' LIMIT 1" ) ) {

$answer .="<div id='message' class='updated fade'><p><strong>这不是管理员账号,确保wp_users表里管理账号的ID为1</strong></p></div>";

}

if ( empty( $answer ) ) {

$wpdb->query( "UPDATE $wpdb->users SET user_pass = MD5('$user_pass'), user_activation_key = '' WHERE user_login = '$user_login'" );

$plaintext_pass = $user_pass;

$message = "更新后的管理员账号密码如下:\r\n";

$message  .= sprintf( '用户名: %s', $user_login ) . "\r\n";

$message .= sprintf( '密码: %s', $plaintext_pass ) . "\r\n";

@wp_mail( get_option( 'admin_email' ), sprintf( '[%s] 你的WordPress管理员密码重置成功!', get_option( 'blogname' ) ), $message );

$answer="<div id='message' class='updated fade'><p><strong>你的WordPress管理员密码重置成功!</strong></p><p><strong>密码已通过邮件的方式发送到了你的管理员邮箱</strong></p><p><strong>请现在立即删除这个重置密码脚本!</strong></p></div>";

}

}


return empty( $answer ) ? false : $answer;

}


$answer = meh();

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<title>WordPress 重置密码</title>

<meta http-equiv="Content-Type" content="<?php bloginfo( 'html_type' ); ?>; charset=<?php bloginfo( 'charset' ); ?>" />

<link rel="stylesheet" href="<?php bloginfo( 'wpurl' ); ?>/wp-admin/wp-admin.css?version=<?php bloginfo( 'version' ); ?>" type="text/css" />

</head>

<body>

<div class="wrap">

<form method="post" action="">

<h2>WordPress 重置密码</h2>

<?php

echo $answer;

?>


<fieldset class="options">

<legend>管理账号</legend>

<label>用户名<br />

<input type="text" name="e-name" id="e-name" class="input" value="<?php echo attribute_escape( stripslashes( $_POST['e-name'] ) ); ?>" size="20" tabindex="10" /></label>

</fieldset>

<fieldset class="options">

<legend>密码</legend>

<label>输入新密码<br />

<input type="text" name="e-pass" id="e-pass" class="input" value="<?php echo attribute_escape( stripslashes( $_POST['e-pass'] ) ); ?>" size="25" tabindex="20" /></label>

</fieldset>


<p class="submit"><input type="submit" name="update" value="修改密码" /></p>

</form>

</div>

</body>

</html>

<?php exit; ?>

 

上传emergency.php到网站根目录,访问:


http://你的域名/emergency.php

 

现在,可以在这个重置密码页面修改密码了,修改完成后记得删除这个脚本哦!



————————————————

版权声明:本文为CSDN博主「杰哥的技术杂货铺」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/cljdsc/article/details/132768542