Thêm Supper Admin bằng file functions.php WordPress

Them Supper Admin bang file functions.php
Thêm Supper Admin bằng file functions.php  -  Figure 1

Tổng quan về Thêm Supper Admin bằng file functions.php

Cách đây khá lâu mình được Sếp giao cho một list website WordPress để bảo trì và quản lý, nhưng người bàn giao không cung cấp thông tin đăng nhập (user và pass). Thường thì mình xử lý bằng cách trực tiếp chọt vào Database qua phpMyAdmin để tạo tài khoản admin mới, nhưng cách đó khá mất thời gian và không phải lúc nào cũng truy cập được database. Mình đã search và tìm ra cách này: sử dụng file functions.php trong theme để tự động tạo tài khoản Administrator. Đúng lý mình cũng không nhớ tới, nhưng nay lại gặp một case tương tự nên mới nhớ ra share lại cho anh em chưa biết.

Xem thêm: Dịch (thay text) nhanh trong WordPress với file functions.php.

Khi nào cần thêm Admin qua functions.php?

Có rất nhiều tình huống bạn cần tạo nhanh một tài khoản admin mà không có quyền truy cập vào wp-admin hay database:

Quên mật khẩu admin: Không nhận được email khôi phục mật khẩu, hoặc SMTP không hoạt động.

Nhận bàn giao website: Như câu chuyện của mình ở trên, người bàn giao không cung cấp tài khoản.

Bị khóa khỏi wp-admin: Do lỗi plugin bảo mật, hoặc do lỗi cấu hình.

Không có access database: Hosting không cấp phpMyAdmin, hoặc bạn không có quyền truy cập database.

Khách hàng quên luôn: Khách hàng gửi cho bạn source code website nhưng không nhớ bất kỳ thông tin đăng nhập nào.

Trong tất cả các trường hợp trên, file functions.php là cứu cánh vì bạn chỉ cần truy cập vào source code (qua FTP, SFTP, File Manager trên hosting) là có thể thêm tài khoản admin mới.

Cách thêm Admin bằng file functions.php

Bạn tìm đến file functions.php trong theme đang sử dụng (nằm ở đường dẫn wp-content/themes/ten-theme/functions.php) và thêm đoạn code sau ở cuối file, trước thẻ đóng ?> nếu có:

// Them tai khoan Administrator tu dong qua functions.php
add_action('init', 'chiasehay_auto_add_admin');
function chiasehay_auto_add_admin() {
    // Thay thong tin ben duoi bang thong tin ban muon
    $username = 'taikhoan_admin';
    $password = 'MatKhauBaoMat123!';
    $email    = 'admin@example.com';

    // Kiem tra xem user da ton tai chua
    if (username_exists($username)) {
        return;
    }

    // Tao tai khoan moi voi quyen Administrator
    $user_id = wp_create_user($username, $password, $email);

    if (!is_wp_error($user_id)) {
        // Gan vai tro Administrator cho tai khoan vua tao
        $user = new WP_User($user_id);
        $user->set_role('administrator');
    }
}

Bạn có thể đổi lại $username, $password, $email theo thông tin quen thuộc thường dùng nhé. Sau khi thêm đoạn code này vào file functions.php, bạn chỉ cần truy cập vào website (load bất kỳ trang nào) để trigger hook init. Hệ thống sẽ tự động tạo tài khoản admin mới với quyền Administrator cao nhất.

Cách tìm đúng file functions.php

Đây là bước quan trọng vì nhiều bạn mới sử dụng WordPress không biết file functions.php nằm ở đâu. Trên một website WordPress, có thể có nhiều file functions.php thuộc các theme và plugin khác nhau, nhưng bạn cần sửa đúng file của theme đang active.

Bước 1: Xác định theme đang sử dụng. Bạn có thể xem tên theme trong source code HTML (xem thẻ body có class chứa tên theme), hoặc tra cứu trong file wp-config.php (nếu có dòng WP_DEFAULT_THEME).

Bước 2: Truy cập vào thư mục wp-content/themes/ten-theme/. Nếu site dùng child theme, hãy ưu tiên sửa file functions.php của child theme. Nếu dùng parent theme thì sửa trực tiếp file của parent theme.

Bước 3: Mở file functions.php, thêm đoạn code ở cuối file, lưu lại.

Bạn có thể dùng FTP client (FileZilla), SFTP, hoặc File Manager trên hosting (cPanel, Plesk, DirectAdmin) để truy cập và chỉnh sửa file.

Cách tìm file functions.php qua File Manager

Nếu bạn sử dụng cPanel, hãy làm theo các bước sau:

1. Đăng nhập vào cPanel của hosting.

2. Tìm mục File Manager và click vào.

3. Điều hướng đến thư mục public_html/wp-content/themes/.

4. Tìm thư mục tên theme đang dùng (ví dụ: twentytwentyfour, astra, flatsome, v.v.).

5. Click chuột phải vào file functions.php, chọn Edit.

6. Thêm đoạn code ở cuối file, lưu lại.

Lưu ý bảo mật cực kỳ quan trọng

Đừng quên xóa đoạn code sau khi đăng nhập thành công! Đây là điều quan trọng nhất. Nếu bạn để lại đoạn code trong file functions.php, mỗi khi có ai truy cập website, hàm chiasehay_auto_add_admin() sẽ chạy lại. Mặc dù code có kiểm tra username_exists() để tránh tạo trùng, nhưng vẫn có rủi ro bảo mật nếu ai đó đọc được source code và biết được thông tin tài khoản.

Các bước sau khi tạo xong tài khoản admin:

1. Truy cập trang đăng nhập wp-admin (thường là ten-domain.com/wp-login.php).

2. Đăng nhập bằng tài khoản vừa tạo.

3. Ngay lập tức đổi mật khẩu mặc định thành mật khẩu mạnh, khó đoán.

4. Quay lại file functions.php và xóa toàn bộ đoạn code vừa thêm.

5. Nếu cần, tạo thêm email phục hồi (recovery email) cho tài khoản admin để phòng trường hợp quên mật khẩu trong tương lai.

Các phương pháp thay thế

Ngoài cách dùng functions.php, còn có các phương pháp khác để lấy lại quyền admin:

1. Thêm admin qua Database (phpMyAdmin): Bạn truy cập bảng wp_users, insert một dòng mới với user_login, user_pass (dùng hàm MD5), user_email. Sau đó vào bảng wp_usermeta, thêm 2 dòng: wp_capabilities (serialised array với administrator) và wp_user_level (giá trị 10).

2. Sử dụng WP-CLI: Nếu hosting hỗ trợ SSH và đã cài WP-CLI, bạn chạy lệnh: wp user create adminuser admin@example.com --role=administrator --user_pass=MatKhauCu. Cách này nhanh gọn nhất nếu có SSH access.

3. Sử dụng plugin Emergency Password Reset: Cài plugin Emergency Password Reset qua FTP (tải plugin, giải nén vào thư mục wp-content/plugins/). Plugin này cho phép bạn đặt lại mật khẩu cho bất kỳ user nào thông qua một file đặc biệt.

4. Sửa trực tiếp trong file wp-config.php: Bạn có thể chèn đoạn code tạo user vào file wp-config.php (chèn trước dòng require_once ABSPATH . 'wp-settings.php';). Cách này hoạt động tương tự như functions.php nhưng không phụ thuộc vào theme.

Tổng kết

Việc thêm tài khoản Administrator qua file functions.php là một kỹ năng rất hữu ích cho bất kỳ ai làm việc với WordPress. Nó đơn giản, nhanh chóng và không đòi hỏi quyền truy cập database hay wp-admin. Chỉ cần bạn có quyền truy cập vào source code (FTP/SFTP/File Manager) là có thể tạo tài khoản admin mới trong vài phút.

Nhưng hãy luôn nhớ xóa đoạn code ngay sau khi không cần thiết nữa để đảm bảo bảo mật cho website. Chúc anh em xử lý thành công!

Mình ít khi làm web cho ai, nên những gì chia sẻ ở đây chỉ phù hợp với ai thích tự xử lý. Còn nếu bạn cần giao diện đẹp + chuẩn SEO, có thể tham khảo thêm team thiết kế web mà mình thấy ổn sau nhiều lần nhờ hỗ trợ – TaigaWeb.

Nhiều Lượt xem

Giới thiệuLiên hệChính sách Biên tập