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

时间:2016-10-06 17:37:57

标签: php wordpress

一位客户打电话抱怨说他们无法登录WordPress来更改网站。在查看问题后,我发现所有用户帐户都无法登录。因此,我已按照所有步骤here进行了操作,但无济于事。

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

我硬重置了数据库中的所有用户密码,因此我知道我使用的密码是正确的。这仍然没有用。

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

我禁用了所有主题并使用了全新的默认主题并对其进行了测试。这也没有用。

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

还有其他人遇到过这个问题吗?任何人都可以建议我尝试再次使用它吗?

1 个答案:

答案 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();
}

我建议您在有权访问后端后更改这些登录信息。