Nếu chẳng may bạn quên mật khẩu admin WordPress thì đừng lo, vẫn còn rất nhiều cách giúp bạn lấy lại pass mà không cần đăng nhập vào WordPress.
Cách 1. Sử dụng tính năng khôi phục mật khẩu
Truy cập vào trang đăng nhập WordPress theo liên kết: example.com/wp-admin
Với example.com là tên miền website của bạn, ví dụ: vnexpress.net/wp-admin
Gõ vào tên tài khoản hoặc địa chỉ email rồi chọn Lấy lại mật khẩu mới. Một email chứa liên kết khôi phục pass admin WordPress sẽ được gửi đến email của bạn.
Kiểm tra Email và nhấp chuột vào liên kết khôi phục mật khẩu
Trong trường hợp bạn không nhận được Email, dù đã kiểm tra kĩ hộp thư Spam, thì hãy thử cách thứ 02 nhé.
Cách 2. Đổi pass admin trong phpMyAdmin
Cách này chỉ áp dụng nếu bạn có tài khoản đăng nhập Cpanel.
Truy cập Cpanel, mỗi hosting thường có một liên kết đăng nhập khác nhau, nhưng bạn có thể thử: example.com:2082
Kéo xuống phần DATABASES và chọn phpMyAdmin
Chọn Database của website cần khôi phục, và tìm dòng WP_USERS (web mình đổi tên các table trong phpMyAdmin rồi nên tên nó hơi khác chút, WP_USERS thường là dòng cuối cùng).
Tìm đúng tên tài khoản admin, và chọn Edit
Điền pass admin mới vào mục 1, và chọn MD5 tại mục 2 rồi nhấn Go (góc phải bên dưới)
Vậy là xong, đăng nhập lại với pass admin mới thôi.
Nếu bạn không có tài khoản Cpanel, thì có thể thử cách 03
Cách 3. Khôi phục pass admin bằng FTP Account
Trong trường hợp bạn thử cách 01 nhưng không nhận được Email khôi phục. Và bạn không có tài khoản CPanel thì hãy thử khôi phục thông qua FTP Account.
Với FTP Account, bạn có thể truy cập vào phần file của website trên Hosting. Chúng ta sẽ thêm hàm vào tập tin Functions.php để tiến hành tạo một tài khoản admin mới.
Truy cập vào FTP với phần mềm File Zilla. Bạn có thể tải File Zilla tại: https://filezilla-project.org/download.php?type=client
Thêm đoạn mã này vào tập tin functions.php tại đường dẫn wp-content/themes/functions.php hoặc trong thư mục Child Theme.
wp_set_password( 'password', 1 );
với Password là mật khẩu mới, bạn điền tùy ý. Và 1 là ID của tài khoản Admin.
Bạn có thể sửa trực tiếp trên File Zilla, hoặc tải về, sửa rồi tải đè lên file cũ nhé.
Thử đăng nhập lại. Nếu thành công, hãy xóa đoạn mã trên nhé.
Nếu bạn đăng nhập mãi vẫn báo sai. Hãy xóa đoạn mã trên và đăng nhập lại nhé 😛
Cách 04. Sử dụng PHP Script
Tạo một file có tên là khunglong.php trong thư mục website, ngang hàng với wp-config.php với nội dung như sau:
<?php /* This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ 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>The user name field is empty.</strong></p></div>' : '' ); $answer .= ( empty( $user_pass ) ? '<div id="message" class="updated fade"><p><strong>The password field is empty.</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>That is not the correct administrator username.</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 = __( 'Someone, hopefully you, has reset the Administrator password for your WordPress blog. Details follow:' ). "\r\n"; $message .= sprintf( __( 'Username: %s' ), $user_login ) . "\r\n"; $message .= sprintf( __( 'Password: %s' ), $plaintext_pass ) . "\r\n"; @wp_mail( get_option( 'admin_email' ), sprintf( __( '[%s] Your WordPress administrator password has been changed!' ), get_option( 'blogname' ) ), $message ); $answer="<div id='message' class='updated fade'><p><strong>Your password has been successfully changed</strong></p><p><strong>An e-mail with this information has been dispatched to the WordPress blog administrator</strong></p><p><strong>You should now delete this file off your server. DO NOT LEAVE IT UP FOR SOMEONE ELSE TO FIND!</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 Emergency PassWord Reset</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 Emergency PassWord Reset</h2> <p><strong>Your use of this script is at your sole risk. All code is provided "as -is", without any warranty, whether express or implied, of its accuracy, completeness. Further, I shall not be liable for any damages you may sustain by using this script, whether direct, indirect, special, incidental or consequential.</strong></p> <p>This script is intended to be used as <strong>a last resort</strong> by WordPress administrators that are unable to access the database. Usage of this script requires that you know the Administrator's user name for the WordPress install. (For most installs, that is going to be "admin" without the quotes.)</p> <?php echo $answer; ?> <p class="submit"><input type="submit" name="update" value="Update Options" /></p> <fieldset class="options"> <legend>WordPress Administrator</legend> <label><?php _e( 'Enter Username:' ) ?><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>Password</legend> <label><?php _e( 'Enter New Password:' ) ?><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="Update Options" /></p> </form> </div> </body> </html> <?php exit; ?>
Mở liên kết: example.com/khunglong.php
với example.com là tên miền website của bạn.
Điền tên tài khoản (Enter Username) và Mật khẩu mới (Enter New Password)
Thử đăng nhập lại với mật khẩu mới này. Nếu thành công, hãy xóa file khunglong.php để tránh người khác đổi mật khẩu nhé ^^
Và còn một số cách khác cho các bạn sử dụng VPS/Server, xem tại đây