“Warning: Cannot modify header information – headers already sent by” là một trong những lỗi phổ biến mà người dùng WordPress thường gặp phải. Lỗi này có thể khiến trang web của bạn không hoạt động bình thường, gây khó khăn cho việc quản trị hoặc làm giảm trải nghiệm người dùng. Cùng Tino tìm hiểu nguyên nhân và cách sửa lỗi “Warning: Cannot modify header information – headers already sent by” trong WordPress qua bài viết này nhé!
Lỗi Warning: Cannot modify header information – headers already sent by là gì?
Lỗi “Warning: Cannot modify header information – headers already sent by” là một thông báo lỗi phổ biến trong WordPress, xảy ra khi có sự cố liên quan đến việc gửi dữ liệu đầu ra (output) đến trình duyệt trước khi các tiêu đề HTTP (headers) được khởi tạo.

Cụ thể, trong quá trình hoạt động của website, WordPress cần gửi các tiêu đề HTTP để quản lý phiên làm việc, chuyển hướng trang hoặc xác thực người dùng. Tuy nhiên, nếu có bất kỳ nội dung nào (kể cả khoảng trắng, ký tự ẩn, hoặc mã code dư thừa) được gửi đến trình duyệt trước khi các tiêu đề này được xử lý, lỗi sẽ xuất hiện.
Điều này thường dẫn đến tình trạng website không thể tải đúng cách hoặc các chức năng như đăng nhập, đăng xuất hoặc chuyển hướng bị gián đoạn, gây ảnh hưởng nghiêm trọng đến trải nghiệm người dùng và quản trị website.
Các nguyên nhân gây ra lỗi Warning: Cannot modify header information – headers already sent by trong WordPress
- Khoảng trắng dư thừa trong file PHP: Nguyên nhân phổ biến nhất là có khoảng trắng trước thẻ <?php hoặc sau ?> trong các file quan trọng như wp-config.php, functions.php, index.php, …
- Plugin hoặc theme không tương thích: Một số plugin hoặc theme kém chất lượng, chưa được cập nhật hoặc không tương thích với phiên bản WordPress hiện tại có thể gây ra lỗi này.
- Gọi hàm header(), setcookie() hoặc session_start() sai cách: Trong PHP, các hàm như header(), setcookie() hoặc session_start() phải được gọi trước khi có bất kỳ nội dung nào được in ra trình duyệt.
- File bị mã hóa sai định dạng (UTF-8 BOM): Khi lưu file PHP dưới định dạng UTF-8 với BOM (Byte Order Mark), một ký tự ẩn sẽ được thêm vào đầu file. Điều này khiến trình duyệt hiểu nhầm rằng đã có dữ liệu đầu ra, dẫn đến lỗi.
- Lỗi từ buffer output (output buffering): Nếu một plugin hoặc đoạn code bật output buffering (ob_start()), nhưng bị tắt không đúng cách (ob_end_flush()), lỗi có thể xảy ra.
- File .htaccess bị cấu hình sai: Nếu file này bị chỉnh sửa sai cách hoặc chứa các quy tắc không hợp lệ, nó có thể gây ra lỗi liên quan đến tiêu đề HTTP.
- Bộ nhớ cache hoặc file tạm thời bị lỗi: Dữ liệu cũ hoặc không hợp lệ có thể được gửi đến trình duyệt trước khi tiêu đề HTTP được khởi tạo.

3 bước sửa lỗi Warning: Cannot modify header information – headers already sent by trong WordPress đơn giản
1. Xác định vị trí lỗi
Lỗi “Cannot modify header information” thường đi kèm với thông tin về tệp và số dòng nơi lỗi xảy ra. Ví dụ như sau:
Warning: Cannot modify header information – headers already sent by (output started at /public_html/wp-content/plugins/plugin-name/function.php:4) in /public_html/wp-includes/pluggable.php on line 1300
Từ đó, chúng ta biết rằng việc xuất dữ liệu đầu tiên từ tệp function.php ở dòng 4 đã gây ra lỗi khi cố gắng sửa đổi header trong tệp pluggable.php tại dòng 1300.
Để khắc phục vấn đề này, chúng ta cần kiểm tra tệp function.php có vấn đề.
2. Chỉnh sửa tệp lỗi
Sau khi xác định được vị trí lỗi, bạn có thể sử dụng File Manager của Hostinger để kiểm tra và loại bỏ các khoảng trắng thừa trong tệp PHP có lỗi. Cách thực hiện như sau:
Bước 1: Truy cập cPanel → File Manager, sau đó vào các tệp của website WordPress.
Bước 2: Tìm tệp gặp vấn đề dựa trên thông tin ở phần Xác định vị trí lỗi (function.php), sau đó nhấp đúp vào để mở.
Bước 3: Xóa khoảng trắng trước thẻ <?php hoặc sau thẻ đóng ?> và dòng mã cuối cùng của tệp. Trong ví dụ dưới đây, thẻ <?php nên xuất hiện ở dòng 1 thay vì dòng 4 và không có khoảng trắng thừa.
Ví dụ:

Bước 4: Lưu và tải lại trang web để kiểm tra xem lỗi đã được khắc phục chưa.
3. Thay thế tệp lỗi (nếu cần)
Nếu lỗi xuất phát từ một tệp lõi (core file) của WordPress, bạn có thể thay thế tệp lỗi bằng tệp mặc định từ gói cài đặt WordPress. Cách làm như sau:
Bước 1: Tải gói cài đặt WordPress từ website chính thức và giải nén.

Bước 2: Tìm tệp lỗi trên website WordPress của bạn thông qua File Manager hoặc FTP client.
Bước 3: Xóa tệp bị hỏng và tải lên tệp mới từ gói cài đặt (trừ tệp wp-content và file wp-config.php).
Tải lại trang web để kiểm tra xem lỗi đã được khắc phục chưa.
Đối với các lỗi phát sinh từ theme hoặc plugin, cách đơn giản nhất là cài lại theme hoặc plugin.
Ngoài ra, bạn cũng có thể khôi phục website WordPress từ bản sao lưu nếu lỗi xuất hiện sau khi cập nhật.
Kết luận
Lỗi “Warning: Cannot modify header information – headers already sent by” có thể gây gián đoạn hoạt động của website WordPress, nhưng hoàn toàn có thể khắc phục bằng cách kiểm tra và sửa lỗi từng bước. Hy vọng bài viết này sẽ giúp bạn sửa lỗi nhanh chóng và đảm bảo website vận hành mượt mà! Chúc bạn thành công!
Những câu hỏi thường gặp
Tại sao lỗi này vẫn xuất hiện sau khi tôi đã thử mọi cách?
Nếu lỗi vẫn tồn tại sau khi bạn đã thử tất cả các phương pháp, nguyên nhân có thể nằm ở:
- Hosting hoặc cấu hình server không đúng.
- Xung đột sâu hơn giữa các thành phần của website.
Trong trường hợp này, hãy liên hệ với nhà cung cấp hosting hoặc thuê chuyên gia WordPress để được hỗ trợ.
Tôi có nên tắt chế độ debug để ẩn lỗi này không?
Tắt chế độ debug (bằng cách đặt WP_DEBUG thành false trong wp-config.php) có thể ẩn thông báo lỗi, nhưng không thực sự giải quyết vấn đề. Tốt nhất là tìm và sửa nguyên nhân gốc rễ thay vì chỉ che giấu triệu chứng.
Tại sao lỗi xuất hiện sau khi cập nhật WordPress, plugin hoặc theme?
Cập nhật có thể làm lộ ra các vấn đề tiềm ẩn trong mã nguồn, chẳng hạn như plugin không tương thích với phiên bản WordPress mới hoặc theme chứa lỗi cú pháp. Để khắc phục, bạn có thể khôi phục từ bản sao lưu hoặc cài đặt lại thành phần gây lỗi.
Lỗi này có ảnh hưởng đến SEO của trang web không?
Trực tiếp thì không, nhưng nếu lỗi khiến trang web hiển thị trắng (white screen) hoặc không hoạt động bình thường sẽ ảnh hưởng đến trải nghiệm người dùng và thứ hạng SEO gián tiếp.
