Vấn đềNhấn nút 'Cập nhật' đáng lẽ phải là một trải nghiệm hài lòng. Thay vào đó, bạn lại đang nhìn chằm chằm vào một màn hình trắng với dòng chữ lạnh lùng: 'The site is experiencing technical difficulties.' Thật khó chịu, nhưng thực tế đây lại là một cơ chế bảo vệ.
WordPress đã ra mắt tính năng này từ phiên bản 5.2 để loại bỏ 'Màn hình trắng chết chóc' (White Screen of Death) đáng sợ. Nó có nghĩa là một lỗi PHP Fatal Error đã xảy ra. Thay vì làm sập toàn bộ máy chủ, WordPress đã phát hiện lỗi và dừng tiến trình lại. Phần lớn trường hợp, điều này xảy ra do phiên bản plugin mới không tương thích với theme của bạn hoặc máy chủ đang chạy phiên bản PHP cũ, ví dụ 7.2, trong khi plugin yêu cầu 8.1 trở lên.
Nguyên nhân gốc rễTại sao trang web của bạn đột nhiên bị hỏng? Thông thường, đó là một trong ba lý do sau:
- Xung đột mã: Hai plugin đang cố gắng sử dụng cùng một tên hàm, gây ra va chạm.- Phiên bản PHP không khớp: Plugin vừa cập nhật sử dụng các tính năng hiện đại (như Union Types) chỉ hoạt động trên PHP 8.x.- Lỗi truyền tải: Một sự cố nhỏ của máy chủ trong quá trình cập nhật khiến các tệp plugin ở trạng thái dở dang, lỗi.## Cách 1: Sử dụng Chế độ phục hồi (Recovery Mode) của WordPressĐây là bộ sơ cứu kỹ thuật số của bạn. Từ năm 2019, WordPress sẽ gửi các liên kết 'Phục hồi' bí mật cho chủ sở hữu trang web bất cứ khi nào có sự cố xảy ra. Đây là cách khắc phục nhanh nhất hiện có.
- Mở tài khoản email liên kết với người dùng quản trị (admin).- Tìm kiếm email có tiêu đề: [Your Site] Your Site is Experiencing a Technical Issue. (Kiểm tra thư mục Spam nếu không thấy!)- Nhấp vào liên kết Chế độ phục hồi (Recovery Mode) duy nhất. Thao tác này sẽ tạo một phiên làm việc đặc biệt, nơi plugin bị lỗi sẽ bị tạm dừng chỉ dành riêng cho bạn.- Đi tới màn hình Plugins.- WordPress sẽ làm nổi bật plugin bị hỏng bằng màu đỏ. Nhấn Deactivate (Hủy kích hoạt).- Nhấn nút Exit Recovery Mode (Thoát Chế độ phục hồi) ở đầu màn hình để đưa trang web hoạt động trở lại bình thường cho mọi người.## Cách 2: 'Công tắc ngắt' qua FTP hoặc Trình quản lý tệpNếu email phục hồi không bao giờ đến, bạn có thể tắt plugin thủ công. Chúng ta thực hiện việc này bằng cách đổi tên thư mục của nó, buộc WordPress phải bỏ qua plugin đó.
- Đăng nhập vào máy chủ bằng phần mềm FTP như FileZilla hoặc cPanel của hosting.- Đi đến thư mục
/wp-content/plugins/.- Tìm thư mục của plugin bạn vừa cập nhật (ví dụ:contact-form-7).- Đổi tên thư mục đó thànhcontact-form-7-old.- Tải lại trang web của bạn. WordPress sẽ nhận thấy các tệp đã 'biến mất' và tự động hủy kích hoạt plugin, khôi phục trang web ngay lập tức.## Cách 3: Xác định chính xác lỗi với WP_DEBUGBạn không chắc plugin nào là thủ phạm? Bạn có thể yêu cầu WordPress hiển thị nhật ký lỗi nội bộ. Theo mặc định, các nhật ký này được ẩn để đảm bảo an toàn cho trang web. - Mở tệp
wp-config.phpnằm trong thư mục gốc của trang web.- Tìm dòngdefine('WP_DEBUG', false);và chuyển nó thànhtrue.- Ngay bên dưới, thêm hai dòng sau:``` define('WP_DEBUG_LOG', true); define('WP_DEBUG_DISPLAY', false);
Bây giờ, hãy tải lại trang bị lỗi. Kiểm tra thư mục `/wp-content/` để tìm tệp mới tên là `debug.log`. Mở nó và tìm mục nhập gần đây nhất. Nó sẽ trông giống như thế này:
PHP Fatal error: Uncaught Error: Call to undefined function... in /wp-content/plugins/broken-plugin/index.php:42
Nhật ký sẽ cho bạn biết chính xác plugin nào và dòng mã nào đã gây ra sự cố.
## Cách 4: Phương pháp dành cho chuyên gia (WP-CLI)Nếu bạn có quyền truy cập SSH, bạn có thể khắc phục lỗi này trong vài giây mà không cần rời khỏi terminal. Đây là cách các chuyên gia xử lý.
- SSH vào máy chủ và di chuyển đến thư mục gốc của web.- Chạy lệnh này để xem những gì hiện đang hoạt động:```
wp plugin list --status=active
Khi bạn phát hiện ra plugin nghi ngờ, hãy tắt nó đi:
wp plugin deactivate plugin-slug-name

