تفتح موقعك فتجد بدلًا من صفحتك الرئيسية جملة واحدة: «There has been a critical error on this website.» (حدث خطأ فادح في هذا الموقع). وأحيانًا تظهر الرسالة في wp-admin أيضًا، فلا تستطيع حتى تسجيل الدخول.
قد يبدو الأمر مقلقًا، لكنه من أسهل مشكلات WordPress إصلاحًا. فهو يعني أن PHP واجه خطأً فادحًا فتوقف، وفي معظم الحالات يكون المتسبب إضافة واحدة، أو القالب، أو تغييرًا في إصدار PHP، أو حد الذاكرة. ومحتواك ما زال آمنًا في قاعدة البيانات. إليك كيف تحدد السبب وتعيد موقعك للعمل.
أهم النقاط
- تعني رسالة الخطأ الفادح أن PHP واجه خطأً فادحًا، وغالبًا ما يكون مصدره إضافة أو القالب أو تغييرًا في إصدار PHP.
- تحقق أولًا من بريد مسؤول الموقع: يرسل WordPress رابطًا لوضع الاسترداد يذكر فيه الإضافة أو القالب المسبب للمشكلة.
- إذا لم تصلك أي رسالة، ففعّل WP_DEBUG_LOG واقرأ الملف wp-content/debug.log لمعرفة الملف الذي حدث فيه الخطأ.
- عطّل إضافة بإعادة تسمية مجلدها، أو عطّل جميع الإضافات باستخدام WP-CLI، دون الحاجة إلى wp-admin.
- إذا لم تتمكن من تحديد السبب بسرعة، فاسترجع آخر نسخة احتياطية سابقة للخطأ، ثم أصلح المشكلة بهدوء على نسخة تجريبية (staging).
أولًا: ما الذي تغيّر؟ فكّر في آخر ما حدث قبل ظهور الخطأ: تحديث إضافة أو قالب، أو إضافة جديدة، أو تغيير إصدار PHP، أو تعديل في الكود. غالبًا ما يكون هذا هو السبب، وهو يرشدك إلى المكان الذي تبدأ البحث فيه.
الخطوة 1: ابحث عن رسالة وضع الاسترداد
عندما يواجه WordPress خطأً فادحًا، يرسل رسالة إلى بريد مسؤول الموقع بعنوان «Your Site is Experiencing a Technical Issue» (موقعك يواجه مشكلة تقنية). تذكر الرسالة اسم الإضافة أو القالب الذي تعطّل، وتتضمن رابطًا خاصًا لـوضع الاسترداد.
افتح الرابط وسجّل الدخول. سيوقف WordPress مؤقتًا الإضافة أو القالب المعطّل فقط، فتتمكن من الدخول إلى wp-admin ثم تحديثه أو استبداله أو إلغاء تفعيله. تحقق من مجلد الرسائل غير المرغوب فيها إن لم تجد الرسالة. تنتهي صلاحية الرابط بعد فترة، لكن WordPress يرسل رابطًا جديدًا إذا تكرر الخطأ.
الخطوة 2: اقرأ رسالة الخطأ
لم تصلك رسالة؟ اجعل WordPress يسجّل الخطأ في ملف سجل. في cPanel، افتح File Manager، وعدّل الملف wp-config.php في مجلد موقعك، وأضف هذه الأسطر فوق السطر /* That's all, stop editing! */:
// Log errors to wp-content/debug.log without showing them to visitors
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );أعد تحميل الصفحة المعطّلة، ثم افتح wp-content/debug.log. ابحث عن آخر سطر يبدأ بعبارة PHP Fatal error. ينتهي هذا السطر بمسار ملف، وهذا المسار يخبرك بالمتسبب في المشكلة:
wp-content/plugins/plugin-name/...: تلك الإضافة؛wp-content/themes/theme-name/...: قالبك؛- Allowed memory size ... exhausted: حد الذاكرة (راجع الخطوة 5).
احذف الأسطر الثلاثة بعد الانتهاء حتى لا يستمر ملف السجل في التضخم. وعلى WebGee يمكنك أيضًا مراجعة سجل أخطاء PHP؛ ويشرح دليلنا أين تجده.
الخطوة 3: عطّل الإضافة المسببة للمشكلة
لا تحتاج إلى wp-admin لذلك. في File Manager، انتقل إلى wp-content/plugins/ وأعد تسمية مجلد الإضافة، مثلًا من slider-pro إلى slider-pro.off. لن يعثر WordPress عليها، فيلغي تفعيلها. ثم أعد تحميل موقعك.
إذا لم تكن تعرف أي إضافة هي السبب، فأعد تسمية مجلد plugins بالكامل إلى plugins.off. إذا عاد الموقع للعمل، فأعد الاسم الأصلي للمجلد، ثم أعد تسمية الإضافات واحدة تلو الأخرى حتى يعود الخطأ للظهور. وإذا كان لديك وصول عبر SSH، فإن WP-CLI أسرع:
# List plugins without loading them (works even when the site is down)
wp plugin list --skip-plugins --skip-themes
# Deactivate one plugin
wp plugin deactivate slider-pro --skip-plugins --skip-themes
# Or deactivate all of them, then reactivate one by one
wp plugin deactivate --all --skip-plugins --skip-themesالخطوة 4: إذا كان السبب هو القالب
أعد تسمية مجلد القالب المفعّل في wp-content/themes/. سيعود WordPress إلى قالب افتراضي إن كان مثبتًا، ويعمل الموقع بمظهر مختلف لكنه يعمل. بعد ذلك حدّث القالب أو استرجع نسخة سليمة منه، ثم أعد تفعيله. احرص على إبقاء قالب افتراضي واحد على الأقل مثبتًا لهذا السبب تحديدًا.
الخطوة 5: أسباب شائعة أخرى
تغيير إصدار PHP
إذا بدأ الخطأ مباشرة بعد ترقية PHP، فعُد إلى الإصدار السابق أولًا: في cPanel من Select PHP Version، وفي WordPress Cloud من Advanced › Developer tools. ثم حدّث ما أشار إليه السجل، وجرّب إصدار PHP الأحدث مرة أخرى على نسخة تجريبية.
نفاد الذاكرة
إذا ظهرت رسالة «Allowed memory size exhausted»، فارفع حد الذاكرة في WordPress بإضافة define( 'WP_MEMORY_LIMIT', '256M' ); إلى wp-config.php، وتحقق من قيمة memory_limit في PHP من Select PHP Version › Options. لكن إذا كانت إضافة واحدة تحتاج إلى كمية ضخمة من الذاكرة في كل صفحة، فالحل الحقيقي يكمن في تلك الإضافة.
تحديث متوقف
إذا توقف تحديث في منتصفه، فقد تظهر لك رسالة صيانة أو تلاحظ ملفات مفقودة. احذف الملف .maintenance من مجلد الموقع إن وُجد، ثم أعد تثبيت الإضافة أو ملفات WordPress الأساسية (wp core download --force --skip-content).
الخطوة 6: عند الشك، استرجع نسخة احتياطية
إذا كان موقعك مصدر دخل لك ولم تتمكن من تحديد السبب خلال دقائق، فاسترجع آخر نسخة احتياطية سابقة للخطأ وابحث في المشكلة لاحقًا. على استضافة cPanel من WebGee، افتح JetBackup، واختر نقطة استرجاع تسبق بداية المشكلة، واسترجع الملفات؛ ولا تسترجع قاعدة البيانات إلا إذا كان التغيير قد أثّر فيها، حتى لا تفقد الطلبات أو التعليقات الحديثة. وعلى WordPress Cloud، استرجع الموقع من نسخه الاحتياطية إلى نقطة زمنية محددة.
بعد ذلك أعد إنتاج المشكلة على نسخة تجريبية، وأصلحها هناك، ثم انشرها على الموقع المباشر عندما تتأكد من أنها تعمل.
قائمة التحقق لإصلاح الخطأ الفادح
- دوّن ما تغيّر قبل ظهور الخطأ مباشرة
- ابحث عن رسالة «Your Site is Experiencing a Technical Issue» ورابط الاسترداد فيها
- فعّل WP_DEBUG_LOG واقرأ آخر خطأ فادح في wp-content/debug.log
- أعد تسمية مجلد الإضافة أو القالب الذي يشير إليه السجل
- أعد إصدار PHP السابق إذا ظهر الخطأ بعد تغيير PHP
- ارفع حد الذاكرة فقط إذا ذكر السجل أن الذاكرة قد نفدت
- استرجع نسخة احتياطية إذا كان الموقع يجب أن يعود للعمل فورًا
- أوقف وضع تصحيح الأخطاء مجددًا واختبر الإصلاح على نسخة تجريبية
لا تريد التعامل مع الأمر وحدك؟
يبدو أن الأخطاء الفادحة تأتي دائمًا في أسوأ توقيت. على WebGee، يستطيع مهندسونا عبر الدردشة المباشرة على مدار الساعة طوال أيام الأسبوع قراءة السجلات معك ومساعدتك على إعادة موقعك للعمل، كما أن استرجاع النسخ الاحتياطية عبر JetBackup والنسخ التجريبية متاحة لك في اللحظات التي تحتاج إليها.
الأسئلة الشائعة
ما سبب ظهور رسالة «There has been a critical error on this website»؟
خطأ فادح في PHP. والأسباب المعتادة هي تحديث إضافة أو قالب، أو إضافة لا تدعم إصدار PHP لديك، أو نفاد ذاكرة PHP، أو تحديث تالف أو غير مكتمل.
لم تصلني رسالة وضع الاسترداد. أين هي؟
تُرسل إلى عنوان بريد المسؤول المحدد في الإعدادات › عام (Settings › General). تحقق من مجلد الرسائل غير المرغوب فيها، وتأكد من أن هذا العنوان ما زال يعمل. وإذا كان موقعك لا يرسل البريد بشكل موثوق، فاضبط SMTP حتى تصلك الرسالة في المرة القادمة.
هل سأفقد أي محتوى أثناء إصلاح المشكلة؟
لا. تفعيل وضع تصحيح الأخطاء وإعادة تسمية مجلدات الإضافات وتغيير القالب لا تمس مقالاتك أو صفحاتك أو طلباتك المخزنة في قاعدة البيانات. أما استرجاع نسخة احتياطية أقدم فقد يؤثر عليها، لذا استرجع الملفات فقط إن لم تكن متأكدًا، أو صدّر الطلبات الحديثة أولًا.
هل يمكنني إصلاح المشكلة دون الوصول إلى wp-admin؟
نعم. كل ما في هذا الدليل يعمل عبر مدير الملفات (File Manager) في cPanel أو عبر SSH، وهذا تحديدًا ما تحتاجه عندما تظهر رسالة الخطأ في wp-admin نفسها.
ظهر الخطأ بعد أن غيّرت إصدار PHP. ماذا أفعل الآن؟
عُد إلى الإصدار السابق من خلال Select PHP Version في cPanel، أو في WordPress Cloud من Advanced › Developer tools. ثم حدّث الإضافة أو القالب الذي تسبب في الخطأ، وجرّب الإصدار الجديد مرة أخرى على نسخة تجريبية.
