الشاشة البيضاء في ووردبريس: كيف تعرف أيّ إضافة سبّبتها

تعد «شاشة الموت البيضاء» (White Screen of Death - WSOD) واحدة من أكثر أزمات ووردبريس إثارة للقلق لدى أصحاب المواقع والمديرين؛ ففجأة تفتح موقعك أو تحاول الدخول للوحة التحكم /wp-admin/، لتصطدم بصفحة بيضاء ناصعة خالية من أي كلمة أو نص أو رابط، وكأن ملفات الموقع قد تبخرت تماماً في الهواء دون سابق إنذار.
هذا الصمت المطبق لا يعني تلف قاعدة بياناتك ولا يعني اختراق موقعك؛ بل هو سلوك دفاعي وافتراضي ناتج عن طريقة عمل لغة PHP ونظام تفريغ المخرجات المؤقتة (Output Buffering). عندما يقع خطأ برمجي قاتل (Fatal Error) — مثل تعارض إضافة جديدة مع قالب، أو استدعاء دالة ملغاة، أو نفاد ذاكرة السيرفر المخصصة للسكربت — وكان خيار إظهار الأخطاء معطلاً في ملفات الإعداد لحماية سرية مسارات الخادم، يتوقف محرك PHP عن المعالجة فوراً ويمسح ذاكرة التخزين المؤقتة للمخرجات، فيعيد للمتصفح صفحة بيضاء فارغة تماماً مع كود استجابة خفي 500 Internal Server Error. إليك كيف تضيء عتمة هذه الشاشة وتعرف الإضافة أو السطر البرمجي المسؤول بدقة متناهية دون الإضرار ببياناتك.
الطريقة الأولى: تفعيل وضع التشخيص WP_DEBUG (الحل الأسرع والأذكى)#
بدلاً من التخمين وتجربة الحلول العشوائية وتضييع الساعات، يمكنك إجبار ووردبريس على كتابة اسم الإضافة المعطوبة والملف ورقم السطر البرمجي المسبب للمشكلة عبر تفعيل وضع تصحيح الأخطاء وتسجيله في ملف سري:
- ادخل إلى مدير الملفات في لوحة تحكم استضافتك (cPanel File Manager أو عبر بروتوكول SFTP).
- انتقل إلى المجلد الرئيسي لموقعك (المسمى عادة
public_htmlأو مجلد النطاق). - افتح ملف
wp-config.phpفي محرر النصوص، وابحث عن السطر البرمجي:define( 'WP_DEBUG', false ); - استبدله بالأكواد التالية التي توجّه ووردبريس لحفظ الأخطاء داخل ملف سجل معزول دون إظهارها لعيون زوار الموقع:
define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true ); define( 'WP_DEBUG_DISPLAY', false ); @ini_set( 'display_errors', 0 ); - احفظ الملف، ثم أعد تحديث الصفحة البيضاء في متصفحك مرة واحدة فقط لإطلاق تسجيل الخطأ.
- ارجع لمدير الملفات وتوجه لمجلد
wp-content/؛ ستجد ملفاً نصياً جديداً ظهر باسمdebug.log. افتحه واقرأ السطور الأخيرة بعناية:PHP Fatal error: Uncaught Error: Call to undefined function get_current_screen() in /wp-content/plugins/seo-optimizer/class-core.php on line 142
بمجرد قراءة هذا السطر، يزول كل الغموض؛ فالإضافة المتسببة هي seo-optimizer بسبب دالة في السطر 142!
الطريقة الثانية: تعطيل مجلد الإضافات الجماعي عبر مدير الملفات#
إذا كنت تواجه صعوبة في تعديل الأكواد البرمجية، أو كنت في عجلة من أمرك لاستعادة لوحة التحكم وإنجاز عمل طارئ، يمكنك تعطيل جميع إضافات ووردبريس بضربة واحدة آمنة لا تحذف أي بيانات ولا تمس إعدادات الإضافات في قاعدة البيانات:
- في مدير الملفات، توجه إلى المسار:
public_html/wp-content/. - ابحث عن مجلد باسم
plugins. - أعد تسمية هذا المجلد ليصبح مثلاً:
plugins_oldأوplugins_temp. - بمجرد تغيير حرف واحد في اسم المجلد، يعجز ووردبريس لحظياً عن العثور على مسارات الإضافات، فيقوم تلقائياً بتعطيلها جميعاً بأمان تام دون حذف أي ملف.
- افتح لوحة الإدارة
example.com/wp-admin/الآن؛ ستجد أنها تفتح بنجاح واختفت الشاشة البيضاء تماماً! - الآن، أعد تسمية المجلد من جديد إلى اسمه الأصلي
pluginsعبر مدير الملفات. - ادخل إلى قسم إضافات > إضافات منصبة في لوحة ووردبريس؛ ستجد كافة الإضافات معطلة ولكنها موجودة. قم بتفعيل الإضافات الأساسية واحدة تلو الأخرى مع تحديث واجهة الموقع بعد كل إضافة؛ بمجرد تفعيل الإضافة المعطوبة ستعود الشاشة البيضاء في الحال، فتعرف يقيناً أنها السبب لتقوم بحذفها أو استبدالها بإصدار مستقر.
الطريقة الثالثة: الحل الاحترافي عبر سطر الأوامر (WP-CLI)#
إذا كان لديك وصول لخادمك عبر SSH، فإن أداة WP-CLI هي السلاح الأسرع الذي يوفر عليك عناء تصفح المجلدات:
# الانتقال لمجلد ووردبريس الرئيسي
cd /var/www/example.com/public_html
# عرض قائمة الإضافات النشطة وحالتها
wp plugin list --status=active
# تعطيل كافة الإضافات النشطة بضغطة زر واحدة
wp plugin deactivate --all
# فحص ملفات نواة ووردبريس للتأكد من سلامتها من التلف
wp core verify-checksums
الطريقة الرابعة: فحص تعارض قالب الموقع (Theme Issue)#
إذا قمت بتعطيل الإضافات وظلت الشاشة البيضاء قائمة كما هي، فإن السبب ينحصر في قالب الموقع المفعل (أو ملف functions.php الذي يحتوي على تعديلات مخصصة):
- توجه لمجلد القوالب في المسار:
wp-content/themes/. - أعد تسمية مجلد قالبك المفعل حالياً (مثلاً من
mythemeإلىmytheme_temp). - سيقوم نظام ووردبريس تلقائياً بالتحويل الفوري إلى أحد القوالب الافتراضية الرسمية المثبتة لديك (مثل Twenty Twenty-Four).
- إذا فتح الموقع بعد ذلك، تأكد أن المشكلة تكمن في خطأ نحوي (Syntax Error) أو استدعاء دالة قديمة غير مدعومة في إصدار PHP الحالي، وافحص ملف
functions.phpبعناية.
الطريقة الخامسة: رفع حد ذاكرة PHP (Memory Exhaustion)#
في كثير من الأحيان، لا يكون هناك خطأ برمجي في الكود ذاته، بل يحاول ووردبريس تحميل مئات الإضافات أو استعلام بيانات ضخم فيتجاوز سقف الذاكرة المسموح به (Allowed memory size of bytes exhausted):
- افتح ملف
wp-config.phpفي المجلد الرئيسي. - أضف السطر التالي قبل عبارة /* That's all, stop editing! */:
define( 'WP_MEMORY_LIMIT', '256M' ); define( 'WP_MAX_MEMORY_LIMIT', '512M' ); - إذا كان السيرفر يفرض حداً أقل في ملف
php.ini، افتح الملف وارفعmemory_limit = 256Mثم أعد تشغيل معالج PHP-FPM.
جدول مقارنة: الشاشة البيضاء مقابل الخطأ الحرج وخطأ 500#
| المعيار | شاشة الموت البيضاء (WSOD) | الخطأ الحرج (Critical Error) | خطأ 500 السيرفر الداخلي |
|---|---|---|---|
| المظهر للمتصفح | صفحة بيضاء فارغة تماماً دون أي نص | رسالة رسمية من ووردبريس مع رابط دعم | صفحة خطأ من خادم الويب (Nginx/Apache) |
| المصدر الأساسي | خطأ PHP قاتل مع إيقاف إظهار الأخطاء | نظام حماية الأخطاء الفادحة في ووردبريس | خطأ في ملف .htaccess أو إعدادات السيرفر |
| التصرف التلقائي | توقف فوري دون إرسال إشعار | إرسال بريد إلكتروني تلقائي بوضع الاسترداد | تسجيل الخطأ في سجلات السيرفر error.log |
| طريقة العلاج المثلى | تفعيل WP_DEBUG أو إعادة تسمية الإضافات |
استخدام رابط الاسترداد في البريد الإلكتروني | إصلاح توجيهات خادم الويب وأذونات الملفات |
كيف تتأكد أن الخطوة نجحت تماماً؟#
- تأكد من فتح الواجهة العامة للموقع في نافذة تصفح خاصة للتأكد من زوال المشكلة للزوار.
- ادخل إلى لوحة التحكم وتحقق من صفحات المقالات والصفحات والإعدادات.
- بعد إنهاء الإصلاح وحذف الإضافة التالفة، أغلق وضع التشخيص في ملف
wp-config.phpلمنع امتلاء القرص بالسجلات:define( 'WP_DEBUG', false ); define( 'WP_DEBUG_LOG', false ); - احذف ملف
debug.logمن مجلدwp-contentلحماية أمان موقعك وخصوصيته.
المشاكل الشائعة وحلولها#
- تظهر الشاشة البيضاء في لوحة التحكم فقط وتعمل الواجهة العامة بسلاسة
- يشير هذا العرض إلى أن الخطأ ناتج عن إضافة مخصصة للأدمن فقط (مثل لوحات الإحصائيات أو أدوات التحرير المتقدمة)، أو نفاد حد ذاكرة لوحة التحكم. تأكد من ضبط
WP_MAX_MEMORY_LIMITعلى 512 ميغابايت وعطل إضافات التحليلات المدمجة. - تظهر الشاشة البيضاء فور تعديل ملف functions.php
- تأكد من عدم وجود أي مسافة فارغة أو سطر خالٍ قبل وسم الفتح
<?phpفي السطر الأول، ولا تضع وسم إغلاق?>في نهاية الملف لأن تركه مفتوحاً هو المعيار البرمجي الموصى به لتفادي أخطاء الرؤوس البيضاء.



التعليقات