رفع خطای “Cannot modify header information – headers already sent” در وردپرس
این ارور معمولاً زمانی ظاهر میشود که قبل از ارسال هدرها توسط PHP، خروجی یا محتوایی (مثل فاصله، کاراکتر یا متن) تولید شده باشد. این مشکل بیشتر هنگام ویرایش فایلهایی مانند functions.php یا wp-config.php دیده میشود.
نمونه ارور:
Warning: Cannot modify header information – headers already sent by (output started at /path/to/file.php:xx)
Warning: Cannot modify header information – headers already sent by (output started at /path/to/file.php:xx)
📋 مراحل دیباگ و رفع خطا
| مرحله | توضیح |
|---|---|
| 1 | خواندن مسیر دقیق فایل و خطا از متن ارور (مثلاً functions.php:52) |
| 2 | حذف فضای خالی قبل یا بعد از <?php یا ?> |
| 3 | بررسی فرمت فایل: حتماً با UTF-8 بدون BOM ذخیره شود |
| 4 | غیرفعال کردن همه افزونهها با تغییر نام پوشه plugins |
| 5 | فعالسازی دیباگ در فایل wp-config.php |
🔧 فعالسازی دیباگ:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
🔐 راهکار پیشگیری
- همیشه فایلها را با ویرایشگر حرفهای مثل VS Code یا Notepad++ و بدون BOM ذخیره کن.
- از ایجاد فاصلههای تصادفی قبل یا بعد از کد PHP اجتناب کن.
- قبل از ویرایش فایلهای اصلی، بکاپ تهیه کن.
برای جلوگیری از این ارورها، پیشنهاد میکنیم از قالبهای بهینهسازیشده و تستشده ما استفاده کنید.