Sửa lỗi warning cannot modify header information – headers already sent by

  • Home / Web development Wordpress / Sửa lỗi warning…
Auto Draft

Sửa lỗi warning cannot modify header information – headers already sent by

Giới thiệu

Thật phiền toái khi một lỗi nhỏ có thể khiến site WordPress hoàn toàn không hoạt động phải không. Chúng tôi, dĩ nhiên, đang nói tới lỗi cực kỳ phổ biến Warning: cannot modify header information – headers already sent by WordPress error. Nếu bạn vô tình gặp phải lỗi này, bạn đã tìm đến đúng nơi rồi đấy. Trong bài hướng dẫn WordPress này, chúng tôi sẽ giải thích vì sao phát sinh lỗi và cách xử lý lỗi để bạn không gặp phải tình trạng này trong tương lai nữa.

Ví dụ header already sent error

Bạn cần chuẩn bị gì

Trước khi bắt đầu, bạn cần chuẩn bị:

  • Quyền truy cập vào Hosting control panel hoặc FTP

Vì sao bạn gặp lỗi Warning cannot modify header information – headers already sent by

Hãy xem qua một ví dụ lỗi. Thông thường bạn sẽ thấy một mẫu pop up như sau hiện lỗi lên:

Warning: Cannot modify header information – headers already sent by (output started at /public_html/wp-content/plugins/my-plugin/my-function.php:#) in /public_html/wp-includes/pluggable.php on line #

Như bạn thấy, có 2 files được đề cập đến. File đầu tiên: my-function.php đặt tại /public_html//wp-content/plugins/my-plugin/) là gốc của lỗi này. Đây là một code tự viết được dùng để ghi đè chức năng chính của WordPress. Chức năng chính này được đặt trong file pluggable.php (file gốc WordPress giống nhau cho bất kỳ bộ cài WordPress nào). Cơ bản, có một vấn đề trong file ngăn file thứ 2 hoạt động bình thường.

Lý do chính có thể là khoảng trắng xuất hiện trong file đầu tiên. Đây có thể là khoảng trắng trên cùng hoặc dưới cùng của file, những khoảng trắng không cần thiết ở bất kỳ nơi nào trong file hoặc kể cả khoảng trắng giữa <?php và ?> PHP tags. Vì trên thực tế, lập trình viên thường để lại dư khoảng trắng khi viết code, lỗi này thường xảy ra hơn mọi người tưởng. Dòng # trong báo lỗi chỉ chính xác vị trí lỗi – nó sẽ giúp bạn giải quyết lỗi mà không gặp nhiều rắc rối.

Sửa lỗi cannot modify header information – headers already sent by

Giờ bạn đã biết nguyên nhân gây lỗi. Chúng tôi sẽ cho bạn biết 2 cách để xử lý lỗi này, có thể thử cả 2 nếu một trong hai không hiệu quả.

Lựa chọn 1 – Chỉnh sửa file bị lỗi

Lựa chọn đầu tiên khi sửa lỗi warning: cannot modify header information – headers already sent by là chỉnh sửa thủ công file lỗi. Bạn đã được cung cấp các thông tin cần thiết để xác định lỗi trong thông báo lỗi (nó là file đầu tiên trong thông báo). Tất cả những gì bạn cần làm là mở file, mở bằng FTP client like FileZilla, hoặc qua File Manager.

Quan trọng là tất cả những gì bạn cần làm ở đây là loại bỏ khác trắng trong file đó. Bắt đầu từ dòng # trong thông báo lỗi. Từ đó, bạn có thể kiểm tra phần còn lại của file và tìm thêm những khoảng trống/trắng cho đến cuối văn bản.

Hãy chắc là bạn chú đến đầu và cuối PHP tags. Không có khoảng trắng trước hoặc sau <?php tag, cũng như ?> tag. Cũng vậy, dòng cuối cùng của code không kết thúc bằng một dòng trống hoặc khoảng trắng dư.

Trong screenshot bên dưới, bạn có thể thấy file wp-config.php có dư một dòng trắng trước php tag.

khoảng trắng trong wpconfig

PRO TIP: Trong nhiều text editors bạn có thể xóa khoảng trắng tự động. Ví dụ, để xóa khoảng trắng trong Atom, chọn tất cả code và chuyển hướng tới Packages -> Whitespace -> Remove Trailing Whitespace.

Lựa chọn 2 – Thay thế file bị hỏng

Tất nhiên, sửa chữa nhiều file bị hỏng quá có thể rất khó khăn. File có thể thuộc về plugin hoặc theme bạn đã từng tích hợp trong site của bạn, hoặc thậm chí là file core của WordPress.

Nếu lỗi thật sự bị gây ra bởi plugin hoặc theme, tất cả những gì bạn cần làm là cài đặt lại nó. Làm vậy sẽ hết lỗi trong hầu hết các trường hợp. Ngoài ra, nếu lỗi là do mã nguồn WordPress, cách tốt nhất là dùng một bản WordPress gốc sạch, và thay thế các file bị hỏng vào trong thư mục cài đặt của bạn với file trong bản WordPress sạch đó. Việc này sẽ đảm bảo các file hỏng đã được khôi phục vào tình trạng ban đầu nhưng vẫn giữ toàn bộ thiết lập WordPress. Bây giờ, bạn chỉ cần khởi động lại và lỗi sẽ đã được sửa.

Lời kết

Bất kể bạn dán code snippet vào file của bạn, thêm plugin hoặc theme hoặc viết code thủ công, bạn đều có rủi ro sẽ thêm một khoảng trắng vào trong file. Những khoảng trống vô tội này sẽ có lúc quay lại ám ảnh bạn dưới dạng lỗi Warning: cannot modify header information – headers already sent by WordPress .

Trong bài hướng dẫn này, chúng tôi đã chỉ bạn cách sửa lỗi này để site hoạt động bình thường như ban đầu. Nếu cần tìm hiểu thêm về các bài hướng dẫn WordPress khác, hãy truy cập mục này của chúng tôi.

Write a Comment