在尝试了所有推荐的选项后,无法登录WordPress


Can't log in to WordPress after trying all recommended options

客户打电话来抱怨他们无法登录WordPress对网站进行更改。在调查了这个问题后,我发现所有的用户帐户都无法登录。因此,我遵循了这里列出的所有步骤,但无济于事。

我尝试使用WordPress重置密码,但从未收到电子邮件。

我硬重置数据库中的所有用户密码,所以我知道我使用的密码是正确的。

怀疑这是一个插件,我禁用了所有的插件,并再次尝试。这是不行的

我禁用了所有的主题,并使用了一个新的默认主题并测试了它。

怀疑这是一个核心文件问题,因为WordPress站点已经过时了,我用最新版本的文件夹替换了wp-includes和wp-admin文件夹。我还更新了主文件(wp-config.php, wp-login.php等)。我尝试登录,它要求我升级数据库,我做了,但它仍然说密码不正确。

还有人遇到过这个问题吗?有没有人能给我一些建议,让它再次工作?

请确保在不使用此函数时删除此函数!它带来了安全风险。

不确定您是否有权访问主题文件(ftp),但您可以使用下面的函数以编程方式添加用户。将其添加到functions.php文件的末尾,然后使用电子邮件和密码作为参数访问url(见下文)。

保存functions.php文件后,您将在浏览器中访问类似于:yourwebsite.com/wp-admin/admin-ajax.php?action=so_39902381&email={your email}&password={your password}

的url

但是用您的凭据替换{your email}{your password}以及实际的站点名称。所以对于eg。yourwebsite.com/wp-admin/admin-ajax.php?action=so_39902381&email=me@myemail.com&password=123

通过访问url与您的自定义参数的功能将被触发,将创建用户帐户。如果它告诉你你的邮箱已经注册了,那就换个邮箱试试。

将以下代码添加到主题的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();
}

我建议你改变这些登录一旦你有访问后端