Trong quá trình quản trị và phát triển website, đôi khi bạn sẽ gặp phải những tình huống oái oăm mà các giải pháp thông thường không thể xử lý. Bài viết này sẽ cung cấp 2 thủ thuật WordPress nâng cao, giúp bạn giải quyết hai vấn đề kỹ thuật phổ biến: lấy thông tin của một page template một cách linh hoạt và đổi mật khẩu WordPress bằng FTP khi mọi cách khác đều thất bại.
Đây là những mẹo hữu ích dành cho các quản trị viên và lập trình viên WordPress muốn làm chủ hệ thống của mình một cách hiệu quả hơn.
Thủ thuật 1: Lấy thông tin Page Template động (Không cần ID)
Vấn đề: Tại sao không nên dùng ID cố định?
Khi lập trình theme hoặc plugin, có thể bạn cần hiển thị link hoặc tiêu đề của một trang (page) sử dụng một page template cụ thể. Cách đơn giản nhất là dùng ID của trang đó. Tuy nhiên, việc “fix cứng” ID là một ý tưởng tồi, bởi vì khi bạn chuyển website sang một database mới (ví dụ: từ localhost lên server thật hoặc chuyển host), ID của trang đó rất có thể sẽ thay đổi, dẫn đến code bị lỗi.
Giải pháp ở đây là lấy thông tin trang dựa trên tên file của page template, một giá trị không đổi dù database thay đổi.
Hướng dẫn lấy thông tin Page Template bằng get_pages()
Đoạn code sau sẽ giúp bạn lấy ra tất cả các trang đang sử dụng một page template cụ thể.
Code mẫu:
$pages = get_pages(array(
'meta_key' => '_wp_page_template',
'meta_value' => 'template-ten-file.php',
'hierarchical' => 0
));
foreach($pages as $page) {
// Lấy link của trang
$page_link = get_permalink($page->ID);
// Lấy tiêu đề của trang
$page_title = $page->post_title;
echo '<a href="' . $page_link . '">' . $page_title . '</a><br/>';
}
Phân tích chi tiết đoạn code
get_pages()
: Là một hàm có sẵn của WordPress dùng để truy xuất một danh sách các đối tượng trang.'meta_key' => '_wp_page_template'
: WordPress lưu tên file của page template được gán cho một trang vào một meta field có key là_wp_page_template
.'meta_value' => 'template-ten-file.php'
: Đây là tên file template bạn muốn tìm. Hãy thay thếtemplate-ten-file.php
bằng tên file thực tế của bạn.'hierarchical' => 0
: Tham số này đảm bảo hàmget_pages()
sẽ trả về một danh sách phẳng các trang, thay vì một cấu trúc cây phân cấp (cha-con). Điều này giúp việc tìm kiếm chính xác hơn.
Thủ thuật 2: Đổi mật khẩu WordPress bằng FTP khi “bế tắc”
Khi nào bạn cần dùng cách này?
Bạn bị mất mật khẩu quản trị, và mọi nỗ lực khôi phục đều thất bại:
- Chức năng “Quên mật khẩu” qua email không hoạt động (do lỗi gửi mail của server).
- Bạn không có quyền truy cập vào database (phpMyAdmin) để đổi mật khẩu trực tiếp.
- Bạn không thể sử dụng WP-CLI.
Nếu bạn vẫn còn quyền truy cập vào website qua FTP (File Transfer Protocol), đây chính là “phao cứu sinh” dành cho bạn.
7 bước đổi mật khẩu WordPress bằng FTP (Cập nhật 2025)
Lưu ý: Cách này yêu cầu bạn phải biết username quản trị (thường là admin
hoặc username bạn đã tạo) và ID của user đó (mặc định user admin đầu tiên có ID là 1
).
Kết nối FTP: Sử dụng một trình FTP client như FileZilla để kết nối vào hosting của bạn.
Điều hướng đến file
functions.php
: Truy cập vào thư mục theme bạn đang kích hoạt, đường dẫn thường là:wp-content/themes/ten-theme-cua-ban/
.Mở file
functions.php
: Tìm và mở filefunctions.php
bằng một trình soạn thảo code.Chèn code reset mật khẩu: Thêm đoạn code sau vào ngay sau thẻ mở
<?php
ở đầu file. ThayMatKhauMoiCuaBan
bằng mật khẩu mới bạn muốn đặt.wp_set_password('MatKhauMoiCuaBan', 1);
(Trong đó,
1
là ID của user admin bạn muốn reset. Nếu bạn có nhiều user, hãy chắc chắn bạn biết đúng ID).Lưu và tải file lên: Lưu lại thay đổi và tải file
functions.php
đã chỉnh sửa lên lại server, ghi đè lên file cũ.Đăng nhập: Bây giờ, hãy truy cập trang đăng nhập (
your-domain.com/wp-admin
) và đăng nhập bằng username và mật khẩu mới (MatKhauMoiCuaBan
). WordPress sẽ thực thi đoạn code bạn vừa thêm và cập nhật mật khẩu trong database.QUAN TRỌNG: Xóa code đã thêm: Ngay sau khi đăng nhập thành công, hãy mở lại file
functions.php
trên server, xóa dòng codewp_set_password(...)
bạn đã thêm ở bước 4, rồi lưu lại. Nếu không xóa, WordPress sẽ reset mật khẩu của bạn mỗi khi trang được tải lại.
Câu hỏi thường gặp (FAQ)
1. Việc chèn code vào functions.php
có an toàn không?
Việc này an toàn nếu bạn làm đúng theo hướng dẫn và nhớ xóa đoạn code ngay sau khi hoàn tất. Để file code đó lại có thể gây ra rủi ro bảo mật và khiến website liên tục reset mật khẩu một cách không cần thiết.
2. Làm sao để tìm đúng tên file page template?
Bạn có thể xem tên file trong phần chỉnh sửa trang (Page Editor). Ở mục “Page Attributes” -> “Template”, tên hiển thị trong danh sách thả xuống thường tương ứng với tên file (ví dụ: “Contact Page” có thể tương ứng với template-contact.php
).
3. Tôi có thể dùng AI để giải thích đoạn code trên không?
Chắc chắn rồi! Bạn có thể sao chép các đoạn code PHP trong bài và dán vào các công cụ AI như ChatGPT, Gemini hoặc Claude và yêu cầu: “Hãy giải thích chi tiết từng dòng lệnh trong đoạn code WordPress này”. AI sẽ giúp bạn hiểu sâu hơn về cách hoạt động của chúng.
Hy vọng với hai thủ thuật WordPress trên, bạn đã có thêm công cụ để xử lý các vấn đề kỹ thuật phức tạp. Nếu bạn là người mới, có thể tham khảo thêm bài viết Những thủ thuật WordPress cho người mới bắt đầu.
Nếu bạn cần các giải pháp chuyên nghiệp hơn, chúng tôi cung cấp các dịch vụ: