WordPress 后台密码忘记后,重置找回密码的 N 种方法

文章目录

忘记密码是每个人都会遇到的事情,长时间不登录 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

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

相关推荐
国外VPS测评网站11 小时前
WordPress精选文章如何添加侧边栏和页面?
wordpress·精选帖子
LJ小番茄2 天前
关于wordPress中的用户登录注册等问题
前端·javascript·css·html·wordpress
podoor5 天前
wordpress不同网站 调用同一数据表
前端·wordpress
Web极客码13 天前
什么是站点内部搜索垃圾邮件攻击以及如何防范
开发语言·php·wordpress
podoor14 天前
把wordpress文章分享到微信 分享到QQ
wordpress·woocommerce
podoor16 天前
两种在wordpress网站首页调用woocommerce产品的方法
wordpress·woocommerce
冰淇淋烤布蕾17 天前
wordpress建立数据库连接失败 数据库删除恢复
数据库·安全·阿里云·oracle·腾讯云·wordpress
podoor17 天前
wordpress免费下载
wordpress
龙萱坤诺18 天前
分享一个使用智狐联创AI平台创建的WordPress分类广告插件
chatgpt·ai编程·wordpress
Web极客码19 天前
如何优化浏览器缓存
缓存·wordpress·.htaccess