如何在沒有用戶名或密碼的情況下重新獲得對 WordPress 管理員的訪問權限

已發表: 2018-10-02

無法登錄您的 WordPress 網站是一場噩夢。 你確定你有正確的密碼,你甚至嘗試重置密碼,但沒有任何效果。 您被鎖定在您的網站之外。 值得慶幸的是,有一些快速的方法可以通過 FTP 修改一些數據庫記錄或一些文件來重新獲得訪問權限。 只要您對底層服務器資源有一定的訪問權限,您就會立即回到 WP admin 中。

本指南將在以下情況下為您提供幫助:

  • 重置密碼選項不起作用
  • 重置密碼有效,但您沒有收到電子郵件(無論出於何種原因)
  • 您知道用戶名和密碼,但它不起作用
  • 你搞砸了帳戶的特權
  • 用戶或 usermeta 數據庫表已損壞或意外修改/刪除
  • 插件/主題搞砸了與登錄相關的事情

要使本指南中的方法起作用,您只需要以下其中一項:

  • FTP 訪問服務器,或
  • cPanel 訪問服務器,或
  • 訪問 MySQL 數據庫

幫助! 我無法登錄!

無法登錄的原因有無數種。錯誤的用戶名或密碼是最簡單的解釋,但我不建議依賴這個前提。 特別是如果您知道自己弄亂了 WordPress,並且因此無法登錄。 解決問題的第一步——禁用主題和所有插件。 為此,我們不需要管理員權限,並且該操作不會“破壞”任何東西。 它是完全可逆的。

這可以通過多種方式完成,使用 FTP、MySQL 或使用 WP Reset 插件附帶的緊急恢復腳本。 由於最後一個是最簡單的解決方案,我們將首先介紹它。

WP Reset 是一個了不起的工具,旨在使您的重置、調試和測試任務更容易。 它具有大量功能,包括多個重置選項,當然還有緊急恢復腳本。

WP重置插件

使用緊急恢復腳本,您將能夠停用您的插件(一個接一個或批量)和主題,而無需訪問 WordPress 管理儀表板。

ERS 插件部分

不僅如此,您還將創建一個新的管理員帳戶、更新 WordPress 和站點 URL、重置用戶權限和角色,以及從 WordPress 管理員外部重新掃描或重新安裝核心文件。 真是令人印象深刻!

現在,進入其他方法。

如果您有 FTP 訪問權限,請重命名 /wp-content/plugins/ 和 /wp-content/themes/ 文件夾。 任何新名稱都可以; 只需在名稱前添加“x”即可。

如果您有 MySQL 訪問權限,請打開選項表(該表將有一個前綴,即 wp_options)並查找將 option_name 列設置為 active_plugins 和 current_theme 的行。 刪除這兩行或更改它們的 option_name 值,以便您以後可以輕鬆地恢復。 如果在默認位置可用,WP 將回退到默認主題(v5 之前的版本為二十十七)。

返回wp-login.php ,刷新頁面並嘗試登錄。仍然無法正常工作? 繼續閱讀。

花點時間找出最簡單的方法

如果您根本沒有使用 WordPress 或您的帳戶,並且您確信問題只是用戶名或密碼錯誤,那麼請使用 MySQL 路線。 只需更改數據庫中的密碼即可重新獲得訪問權限。

如果您根本沒有帳戶,或者您有理由相信您搞砸了,那麼 FTP 方法效果更好,因為我們需要創建一個新帳戶。 僅使用 FTP 或僅使用 MySQL 訪問都可以獲得積極的結果,因此如果您只有一個可用的,請不要驚慌。

如果您可以訪問站點的 WP-CLI,則無需弄亂文件或數據庫。 wp user命令將為您提供足夠多的工具來修復帳戶或創建新帳戶。

無需用戶名或密碼即可登錄 - MySQL 方式

要使 WP 帳戶正常工作,必須正確對齊一些事情。 WP 在 users 表中查找用戶名和散列密碼,如果找到一行,它將繼續在 usermeta 表中搜索其他行。 它需要他們弄清楚您的帳戶權限。 如果上述任何事情失敗,您將無法登錄,或者您將無法登錄,但沒有正確的權限。 由於 WordPress 的過濾器和操作,任何數量的插件和主題都可以改變這個過程並使調試變得更加困難。 這就是為什麼我已經建議禁用它們。

我還將提到通過插件運行自定義 WP DB 類的可能性。 其中的一個錯誤也可能是罪魁禍首。 為確保您沒有運行任何插件,請重命名 /wp-content/mu-plugins/ 文件夾。 如果您找不到該文件夾 - 太好了! 這意味著您沒有任何活動的插件。

phpMyAdmin 是一個不錯的工具,可以在 WP 的數據庫中更改或添加幾行。 大多數人通過預安裝的 cPanel 訪問它,您不必再次輸入憑據。 提醒一下,cPanel 可在 https://yoursite.com:2083 上找到。 如果這對您不可用,但您確實擁有數據庫用戶名、密碼以及從遠程主機連接到它的能力,那麼我建議安裝免費的 HeidiSQL 應用程序並使用這些詳細信息進行連接。 如果您的 WP 工作,保存在wp-config.php中的用戶名和密碼當然可以工作,但由於安全限制,很少用於從遠程主機連接到 MySQL。 如何設置取決於服務器,不可能給出一般性的建議。

無法登錄您的#WordPress 網站? 用戶名和密碼不起作用? 以下是一些無需用戶名和密碼即可重新獲得訪問權限的簡單方法。

點擊推文

修改一些數據庫行

在用戶表中找到您的帳戶。 再一次 - 表總是有一個前綴。 默認情況下它是 wp_users,但它可以是任何東西; 即:site765_users。 假設只是密碼錯誤,編輯 user_pass 列並輸入一個新的散列密碼(僅使用 MD5)。 密碼“123456”的哈希值是e10adc3949ba59abbe56e057f20f883e ,但我強烈建議使用更合適的密碼並為其生成哈希值。 保存該行並嘗試登錄。 沒運氣? 讓我們檢查一下特權。

記下您的帳戶 ID - 在用戶表中的 id 列下可見。 然後在 usermeta 表中找到 user_id 列(鍵)具有該 id 值的所有行。 您可以期望找到 10 多行,但我們需要的是那些在 meta_key 列中具有 wpc_capabilities 和 wpc_user_level 值的行。 將第一個設置為a:1:{s:13:"administrator";b:1;}並將第二個設置為10 。 保存,嘗試登錄。還是沒有運氣? 在這種情況下,我建議創建一個更容易通過 FTP 完成的新管理員帳戶。

如果您無法使用 FTP,請模仿您已經擁有的帳戶中的數據來創建一個新帳戶。 確保它具有唯一的用戶名和電子郵件地址,並且您在上面提到的 usermeta 表中創建了兩條記錄。 這就是直接在數據庫中創建帳戶所需的全部內容。

無需用戶名或密碼即可登錄 - FTP 方式

此方法的第一步也是關鍵步驟是找到活動主題的functions.php文件。 如果您重命名了 /wp-content/themes/ 文件夾,則將其重命名並只保留 Twenty Seventeen 主題。 任何其他主題也可以,但請確保它沒有任何可能導致錯誤的自定義登錄功能。

找到functions.php文件後進行測試以確保您擁有正確的文件。 相信我——我已經浪費了幾個小時編輯錯誤的文件。 添加die('It works!'); 作為文件的第一行 PHP; 保存並刷新站點。 如果沒有任何變化,則說明文件錯誤。 撤消更改並找到正確的更改。 一旦你有了它,將此代碼添加到文件的開頭;

// modify these two lines
$user_email = '[email protected]';
$user_password = '123456';

if ( !username_exists( $user_email ) ) {
  $user_id = wp_create_user( $user_email, $user_password, $user_email );

  wp_update_user( array( 'ID' => $user_id, 'nickname' => $user_email ) );

  $user = new WP_User( $user_id );
  $user->set_role( 'administrator' );
  wp_die( 'Success!' );
} else {
  wp_die( 'Username already exists.' );
}

修改代碼的前兩行,保存文件並重新加載站點。 “成功!” 應出現在屏幕上,然後您可以使用新的用戶名和密碼繼續登錄; 您在代碼的前兩行中設置的那些。 完成後不要忘記從functions.php中刪除代碼。

其他重新獲得 WordPress 訪問權限的方法

如果您有 FTP、MySQL 或 cPanel 訪問權限,上述方法將使您登錄。如果沒有,請確保您在下方發表評論。 我很想知道是什麼阻止您登錄。

對某些人造成問題的常見“小事”是沒有在正確的 URL 上打開wp-login.php 。 在未將其設置為站點地址時使用“www”,反之亦然。 或者不使用正確的協議——HTTPS 而不是 HTTP,反之亦然。 雖然頁面可能會加載,但這並不意味著您在正確的 URL 上,因此請仔細檢查。

如果您來這裡是為了學習如何入侵某人的 WordPress,對不起,不是那種文章。 通過 FTP 或 MySQL 訪問,我假設您是合法所有者,並且不會將所描述的方法用於邪惡目的。