一位客户打电话抱怨说他们无法登录WordPress来更改网站。在查看问题后,我发现所有用户帐户都无法登录。因此,我已按照所有步骤here进行了操作,但无济于事。
我尝试使用WordPress重置密码,但我从未收到过电子邮件。
我硬重置了数据库中的所有用户密码,因此我知道我使用的密码是正确的。这仍然没有用。
怀疑它是一个插件我禁用了所有插件并再次尝试。这是不行的。
我禁用了所有主题并使用了全新的默认主题并对其进行了测试。这也没有用。
怀疑它是一个核心文件问题,因为WordPress网站已经过时了,我用最新版本的文件夹替换了wp-includes和wp-admin文件夹。我还更新了主要文件(wp-config.php,wp-login.php等)。我试图登录,它要求我升级我做的数据库,但仍然说密码不正确。
还有其他人遇到过这个问题吗?任何人都可以建议我尝试再次使用它吗?
答案 0 :(得分:0)
请确保在不使用时删除此功能!它带来了安全风险。你已被警告。
不确定您是否可以访问主题文件(ftp),但可以使用以下功能以编程方式添加用户。将它添加到functions.php文件的末尾,然后使用您的电子邮件和密码作为参数访问URL(见下文)。
保存您的functions.php文件后,您将在浏览器中访问类似于以下内容的网址:yourwebsite.com/wp-admin/admin-ajax.php?action=so_39902381&email={your email}&password={your password}
但是用您的凭据替换{your email}
和{your password}
以及实际的网站名称。
所以对于例如。 yourwebsite.com/wp-admin/admin-ajax.php?action=so_39902381&email=me@myemail.com&password=123
通过使用您的自定义参数访问网址,将触发将创建用户帐户的功能。如果它告诉您您的电子邮件已经注册,请尝试使用其他电子邮件。
将以下代码添加到主题中的functions.php中:
add_action('wp_ajax_nopriv_so_39902381', 'so_39902381');
add_action('wp_ajax_so_39902381', 'so_39902381');
/**
* Add a WordPress user programmatically
*/
function so_39902381(){
$email_address = isset($_GET['email']) ? $_GET['email'] : wp_die();
$password = isset($_GET['password']) ? $_GET['password'] : wp_die();
if( null == username_exists( $email_address ) ) {
// Generate the password and create the user
$password = wp_generate_password( 12, false );
$user_id = wp_create_user( $email_address, $password, $email_address );
// Set the nickname
wp_update_user(
array(
'ID' => $user_id,
'nickname' => $email_address
)
);
// Set the role
$user = new WP_User( $user_id );
$set = $user->set_role( 'administrator' );
//Email the user
wp_mail( $email_address, 'Welcome!', 'Your Password: ' . $password );
} else {
echo 'error: email already registered, choose another';
}
wp_die();
}
我建议您在有权访问后端后更改这些登录信息。