Sửa lỗi Cannot modify header information – headers already sent by… trong WordPress.
Thời gian gần đây, một vài bạn sử dụng hosting của GoDaddy, DreamHost, HostGator, Hostvn.net… có liên hệ với tôi để yêu cầu hỗ trợ về việc theme Paradise bị lỗi Cannot modify header information – headers already sent by […] khi cài đặt và kích hoạt. Sau quá trình tìm hiểu, chúng tôi đã tìm ra nguyên nhân và phát hành phiên bản mới để khắc phục vấn đề. Nhân đây, tôi cũng muốn chia sẻ một chút thông tin cho các bạn đang gặp phải tình trạng tương tự.
Tham khảo thêm:
- Khắc phục lỗi 503 Service Unavailable trong WordPress
- Hướng dẫn khắc phục lỗi trắng trang trong WordPress
Nguyên nhân gây lỗi Cannot modify header information
Thực ra đây là một lỗi phổ biến hàng đầu trong WordPress, thường xuất hiện khi bạn cài đặt một theme hoặc plugin nào đó không tương thích với phiên bản PHP của hosting hoặc file PHP bị lỗi (có khoảng trắng hoặc ký tự lạ ở đầu file).
Warning: Cannot modify header information - headers already sent by (output started at /home/username/public_html/domain.com/wp-content/themes/paradise/functions.php:1) in /home/username/public_html/domain.com/wp-includes/pluggable.php on line 1179
Sở dĩ tôi nói như vậy bởi vì cùng chung 1 plugin, 1 theme giống nhau nhưng lỗi này chỉ xuất hiện trên hosting của một số nhà cung cấp nhất định. Ví dụ cùng là theme Paradise nhưng khi cài đặt trên hosting của HawkHost, StableHost, NameCheap… thì không xảy ra tình trạng kể trên.
Khắc phục lỗi Cannot modify header information
Có 3 phương án khác nhau để khắc phục lỗi Cannot modify header information – headers already sent by trong WordPress:
Kiểm tra tập tin PHP bị lỗi
Truy cập vào host thông qua File Manager của cPanel/ DirectAdmin hoặc phần mềm FTP. Tìm và mở file PHP bị lỗi ra (xem đường dẫn của file PHP trong thông báo lỗi). Hãy kiểm tra xem ở đầu file đó có chứa khoảng trắng hay ký tự nào khác trước thẻ <?php
hay không? Nếu có, hãy xóa chúng đi rồi lưu lại.
Làm tương tự với các file functions.php
của theme:
Và file wp-config.php
:
Xóa cache (nếu có) và kiểm tra kết quả.
Sử dụng lệnh ob_start(); và ob_end_flush();
Nếu phương pháp bên trên vẫn không có hiệu quả, hãy thử chèn các lệnh sau đây vào bên trong file PHP bị lỗi:
- Chèn lệnh
ob_start();
vào đầu file PHP. Lệnh này có tác dụng khởi động vùng đệm của server để chứa tạm thời nội dung echo (xuất) vào đó. - Chèn lệnh
ob_end_flush();
vào cuối file PHP. Lệnh này có tác dụng đưa dữ liệu từ vùng đệm của server về lại phần nội dung.
Lưu lại và kiểm tra kết quả.
Chỉnh sửa file php.ini
Nếu bạn có quyền thiết lập file php.ini
của hosting, hãy thêm đoạn code sau đây vào bên trong nó:
output_buffering= ON
Nếu bạn không có quyền chỉnh sửa file này, vui lòng liên hệ nhà cung cấp dịch vụ để yêu cầu hỗ trợ.
Trên đây là 3 phương án để khắc phục lỗi Cannot modify header information […]. Hy vọng nó sẽ giúp bạn nhanh chóng giải quyết được vấn đề đang gặp phải. Mọi thắc mắc và góp ý liên quan đến lỗi Cannot modify header information […] xin vui lòng gửi vào khung bình luận bên dưới để được hỗ trợ và giải đáp.
Nếu bạn thích bài viết này, hãy theo dõi blog của tôi để thường xuyên cập nhật những bài viết hay nhất, mới nhất nhé. Cảm ơn rất nhiều. :)
Mình thì đang dùng Ftech.vn lúc trước thông qua mã giảm giá của bác (giảm 50% trọn đời) không biết giờ bác không làm đại sứ bên ấy nữa có còn được không nữa :D
Nếu là mã giảm giá lifetime thì gia hạn vẫn được giảm giá 50% như khi đăng ký thôi. :)
Có thể nói sử dụng Ftech.vn cảm thấy rất hài lòng :D
Thế là tốt rồi. :D Giới thiệu cho độc giả mà chất lượng dịch vụ không ra gì thì ngại lắm. :P
Còn được ưu đãi ko bác :D