اگر بعد از نصب یا بروزرسانی یک افزونه، وردپرس ناگهان صفحه سفید نشان میدهد یا پیغام معروف «وبسایت شما یک خطای مهم دارد» ظاهر میشود، یعنی یکی از افزونهها یا قالبها باعث اختلال در اجرای PHP شده است. این خطا یکی از رایجترین مشکلات سایتهای وردپرسی است و اگر سریع رفع نشود، میتواند به ضرر تجربه کاربری، سئو و حتی درآمد سایت تمام شود.
در این مقاله یک راهنمای کامل و قدمبهقدم برای رفع خطا ارائه میدهم؛ همراه با تجربههای واقعی من، فرزین اعتماد، از بیش از ۱۸ سال کار روی انواع سایتهای وردپرسی فروشگاهی، خدماتی و محتوا محور.
دلیل اصلی خطای «یک خطای مهم رخ داده است» چیست؟
در ۹۰ درصد موارد، مشکل یکی از موارد زیر است:
-
افزونه ناسازگار با وردپرس یا نسخه PHP
-
تداخل بین دو یا چند پلاگین
-
اختلال در قالب فعال
-
آپدیت ناقص افزونه یا قالب
-
کمبود منابع هاست مثل Memory_limit
-
فایلهای خراب شده یا حذف شده
در ادامه روشهایی که همیشه برای رفع این مشکل استفاده میکنم را دقیق و مرحلهای توضیح میدهم.
1. ورود به حالت Troubleshooting (روشی که همیشه نجاتم داده)
اگر وردپرس هنوز بالا میآید و فقط بخشی از سایت خراب است:
بهترین راه: نصب افزونه Health Check
افزونه Health Check & Troubleshooting یک حالت تست ارائه میدهد که فقط برای شما فعال میشود. در این حالت:
-
همه افزونهها غیرفعال میشوند
-
قالب به قالب پیشفرض برمیگردد
-
سایت برای کاربران کاملاً سالم میماند
-
و شما میتوانید افزونهها را یکییکی فعال کنید و مقصر را پیدا کنید
این روش دهها بار باعث شده در سایت مشتریها بدون اینکه سایت از دسترس خارج شود، مشکل را ریشهیابی کنم.
2. اگر سایت کامل Down شده: ورود به هاست و غیرفعال کردن افزونهها
وقتی حتی پیشخوان وردپرس باز نمیشود، باید از هاست وارد شوید.
روش اول: حذف یا تغییر نام پوشه افزونهها
مسیر زیر را باز کنید:
public_html/wp-content/plugins
حالا:
-
پوشه افزونهای که تازه نصب کردهاید را rename کنید
(مثلاً به pluginname-disabled)
وردپرس بهصورت خودکار آن افزونه را غیرفعال میکند و سایت بالا میآید.
نکته از تجربه شخصی:
در یک پروژه فروشگاهی که ماهی ۲ میلیون بازدید داشت، نصب یک افزونه امنیتی باعث Down شدن کامل شد. تنها با تغییر نام پوشه افزونه مشکل حل شد و سایت به حالت عادی برگشت.
3. فعال کردن حالت Debug برای دیدن علت دقیق خطا
برای اینکه بفهمید مشکل دقیقاً کجاست:
فایل wp-config.php را باز کنید و این سه خط را اضافه کنید:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
بعد از ذخیره، خطاها در فایل زیر ثبت میشوند:
wp-content/debug.log
با خواندن آن معمولاً اشاره مستقیم به یک فایل یا تابع میشود.
مثلاً:
-
Fatal Error: Call to undefined function
-
Memory exhausted
-
Syntax error in plugin XYZ
این فایل در ۹۰ درصد مواقع حقیقت را روشن میکند.
4. رفع خطای ناسازگاری نسخه PHP با افزونه
گاهی افزونه با PHP نسخه 8.1 یا 8.2 سازگار نیست و خطا میدهد.
برای تست:
به هاست → بخش Select PHP Version بروید و نسخه را روی 7.4 یا 8.0 قرار دهید.
نکته:
چند سایت بینالمللی که روی هاستهای آلمانی مدیریت کردهام، بهخاطر یک Line کد در PHP 8.1 دچار Fatal Error شده بودند. تغییر نسخه PHP فوراً مشکل را حل کرد.
5. فعال کردن قالب پیشفرض در صورت اختلال قالب
گاهی مشکل اصلاً از پلاگین نیست بلکه از قالب است.
روش سریع:
به مسیر زیر بروید:
wp-content/themes
و پوشه قالب فعلی را rename کنید.
وردپرس مجبور میشود به قالب پیشفرض (Twenty Twenty-Five) برگردد و سایت بالا میآید.
اگر سایت درست شد، یعنی مشکل از قالب بوده است.
6. افزایش memory_limit
بسیاری از خطاهای مهم بخاطر کمبود منابع هستند.
در wp-config.php اضافه کنید:
define('WP_MEMORY_LIMIT', '256M');
یا در php.ini:
memory_limit = 256M
یکی از رایجترین خطاهایی که در سایتهای بزرگ دیدهام همین Memory Exhausted است.
7. نصب مجدد هسته وردپرس (بدون حذف محتوا)
اگر فایلهای وردپرس خراب شده باشند:
-
وارد پیشخوان شوید
-
از بخش Dashboard → Updates
-
روی Re-install WordPress کلیک کنید
هسته وردپرس دوباره نصب میشود بدون اینکه چیزی پاک شود.
این روش چند بار برای رفع بدافزار یا خراب شدن فایلهای اصلی به کمکم آمده است.
8. بررسی فایل Error Log هاست
اگر هیچکدام از راهها جواب نداد:
-
وارد cPanel شوید
-
بخش Errors یا Error Log
این بخش دقیقاً نشان میدهد آخرین خطا چه بوده.
گاهی یک خطا مربوط به mod_security یا محدودیتهای سرور است که باید توسط پشتیبانی هاست رفع شود.
جمعبندی: بهترین مسیر رفع خطای مهم وردپرس
بهعنوان کسی که صدها پروژه وردپرسی را مدیریت کردهام، بهترین ترتیب رفع مشکل این است:
-
غیرفعال کردن افزونه جدید / rename پوشه
-
فعال کردن Debug
-
بررسی debug.log
-
تست نسخه PHP
-
تست قالب با قالب پیشفرض
-
افزایش Memory_limit
-
بررسی Error Log هاست
-
نصب مجدد هسته وردپرس
این مسیر تقریباً همیشه مشکل را حل میکند.