خطای بحرانی وردپرس یا پیام There has been a critical error on this website یکی از خطاهای رایج وردپرس است که معمولاً بعد از نصب یا بهروزرسانی افزونه، تغییر قالب، ناسازگاری نسخه PHP، کمبود منابع هاست یا خطا در فایلهای اصلی سایت نمایش داده میشود. این خطا میتواند دسترسی کاربران به سایت و گاهی دسترسی مدیر به پیشخوان وردپرس را مختل کند؛ اما در بیشتر موارد با عیبیابی مرحلهای قابل شناسایی و رفع است.
در این راهنما روشهای امن و کاربردی برای رفع خطای بحرانی وردپرس را مرور میکنیم. پیشنهاد میشود قبل از هر تغییر، از فایلها و پایگاه داده سایت بکاپ بگیرید تا در صورت بروز مشکل بتوانید وضعیت قبلی را بازیابی کنید.
خطای بحرانی وردپرس چیست؟
وردپرس زمانی پیام خطای بحرانی را نشان میدهد که یک خطای جدی در اجرای کدهای سایت رخ دهد و ادامه بارگذاری صفحه ممکن نباشد. این خطا ممکن است در صفحه اصلی سایت، یکی از صفحات داخلی، صفحه ورود، پیشخوان یا حتی فقط در بخش خاصی مثل ووکامرس یا فرم تماس دیده شود.
در نسخههای جدید وردپرس، در بسیاری از مواقع ایمیلی با عنوانی شبیه «سایت شما با یک مشکل فنی مواجه شده است» برای ایمیل مدیر سایت ارسال میشود. این ایمیل معمولاً نام افزونه یا قالب مشکلساز و یک لینک ورود به حالت بازیابی وردپرس را شامل میشود. اگر این ایمیل را دریافت کردهاید، از همان اطلاعات برای شروع عیبیابی استفاده کنید.
دلایل رایج بروز خطای Critical Error در وردپرس
برای رفع دقیق خطا، ابتدا باید علت احتمالی را پیدا کنید. رایجترین دلایل عبارتاند از:
- ناسازگاری افزونهها: نصب افزونه جدید، بهروزرسانی افزونه یا تداخل دو افزونه میتواند باعث خطای بحرانی شود.
- مشکل در قالب وردپرس: قالبهای قدیمی، کدنویسی نادرست یا ناسازگاری قالب با نسخه جدید وردپرس یا PHP ممکن است سایت را از دسترس خارج کند.
- نسخه نامناسب PHP: برخی افزونهها و قالبها با نسخههای خیلی قدیمی یا خیلی جدید PHP سازگار نیستند.
- کمبود حافظه PHP: اگر سایت برای اجرای افزونهها و قالب به حافظه بیشتری نیاز داشته باشد، ممکن است خطای Fatal Error ایجاد شود.
- خرابی فایلهای وردپرس: حذف یا تغییر ناخواسته فایلهای اصلی وردپرس، آپلود ناقص یا بهروزرسانی ناموفق میتواند مشکلساز شود.
- خطا در کدنویسی اختصاصی: تغییرات در فایل functions.php، افزونه اختصاصی یا کدهای اضافهشده به سایت ممکن است علت خطا باشد.
- مشکل در اتصال به دیتابیس یا منابع هاست: گاهی خطای بحرانی همراه با خطاهای دیگری مثل خطای اتصال به پایگاه داده یا صفحه سفید وردپرس دیده میشود.
قبل از شروع رفع خطا چه کارهایی انجام دهیم؟
برای جلوگیری از بدتر شدن وضعیت سایت، این چند نکته را رعایت کنید:
- از فایلهای سایت و دیتابیس بکاپ بگیرید.
- اگر به پیشخوان دسترسی دارید، افزونهها، قالب و وردپرس را بدون بررسی همزمان بهروزرسانی نکنید.
- اگر سایت فروشگاهی یا پربازدید است، تغییرات را در زمان کمترافیک انجام دهید.
- پیام خطا، زمان شروع مشکل و آخرین تغییرات انجامشده روی سایت را یادداشت کنید.
روش اول: ایمیل خطای وردپرس و حالت بازیابی را بررسی کنید
اولین قدم، بررسی ایمیل مدیر سایت است. وردپرس معمولاً در صورت تشخیص خطای جدی، ایمیلی برای مدیر ارسال میکند که در آن نام افزونه یا قالب مشکلساز و مسیر فایل خطادار مشخص شده است.
اگر لینک حالت بازیابی در ایمیل وجود دارد، با همان لینک وارد وردپرس شوید. در حالت بازیابی میتوانید افزونه یا قالب مشکلساز را غیرفعال کنید، بدون اینکه کل سایت را از طریق هاست دستکاری کنید.
اگر ایمیلی دریافت نکردهاید، پوشه اسپم را هم بررسی کنید. همچنین ممکن است ارسال ایمیل وردپرس در سایت شما درست کار نکند؛ در این حالت باید از روشهای بعدی مثل فعالسازی دیباگ یا بررسی error_log هاست استفاده کنید.
روش دوم: افزونهها را غیرفعال و افزونه مشکلساز را پیدا کنید
اگر خطا بعد از نصب یا بهروزرسانی یک افزونه ایجاد شده، احتمالاً همان افزونه عامل مشکل است. اگر به پیشخوان دسترسی دارید، از بخش افزونهها آن را غیرفعال کنید و سایت را بررسی کنید.
اگر به پیشخوان دسترسی ندارید، از طریق File Manager هاست یا FTP وارد مسیر wp-content شوید و نام پوشه plugins را به نامی مثل plugins-old تغییر دهید. با این کار همه افزونهها غیرفعال میشوند. سپس سایت را باز کنید. اگر سایت بالا آمد، یعنی یکی از افزونهها باعث خطا شده است.
برای پیدا کردن افزونه مشکلساز، نام پوشه را دوباره به plugins برگردانید و افزونهها را یکییکی فعال کنید. بعد از فعالسازی هر افزونه، سایت را بررسی کنید تا افزونهای که خطا را ایجاد میکند مشخص شود.
روش سوم: قالب سایت را موقتاً تغییر دهید
اگر غیرفعالکردن افزونهها مشکل را حل نکرد، قالب را بررسی کنید. قالب فعال ممکن است با نسخه وردپرس، نسخه PHP یا یکی از افزونهها سازگار نباشد. اگر به پیشخوان دسترسی دارید، یک قالب پیشفرض وردپرس را فعال کنید و سایت را تست کنید.
اگر به پیشخوان دسترسی ندارید، از File Manager یا FTP وارد مسیر wp-content/themes شوید و نام پوشه قالب فعال را تغییر دهید. در صورتی که یک قالب پیشفرض روی سایت نصب باشد، وردپرس تلاش میکند از آن استفاده کند. اگر بعد از این تغییر سایت بالا آمد، باید قالب فعلی بررسی، اصلاح یا بهروزرسانی شود.
روش چهارم: دیباگ وردپرس را فعال کنید
برای پیدا کردن علت دقیق خطا، فعالکردن حالت دیباگ وردپرس بسیار کمککننده است. برای این کار فایل wp-config.php را در ریشه سایت باز کنید و قبل از عبارت مربوط به پایان ویرایش فایل، تنظیمات زیر را قرار دهید یا مقدارهای موجود را اصلاح کنید:
define(‘WP_DEBUG’, true);
define(‘WP_DEBUG_LOG’, true);
define(‘WP_DEBUG_DISPLAY’, false);
با این تنظیمات، خطاها در فایل debug.log داخل پوشه wp-content ذخیره میشوند و روی صفحه سایت نمایش داده نمیشوند. پس از بررسی فایل لاگ، معمولاً میتوانید مسیر فایل خطادار، نام افزونه یا قالب و نوع خطا را ببینید.
بعد از پایان عیبیابی، بهتر است WP_DEBUG را دوباره روی false قرار دهید تا اطلاعات فنی سایت در دسترس باقی نماند.
روش پنجم: فایل error_log هاست را بررسی کنید
بسیاری از هاستها خطاهای PHP را در فایل error_log ذخیره میکنند. این فایل ممکن است در ریشه سایت، پوشه public_html، پوشه مربوط به دامنه یا بخش خطاهای کنترلپنل هاست قرار داشته باشد.
در error_log به خطاهایی با عبارتهایی مانند Fatal error، Parse error، Allowed memory size یا Uncaught Error توجه کنید. این پیامها معمولاً نشان میدهند خطا از کدام فایل و کدام مسیر شروع شده است. اگر مسیر خطا داخل پوشه plugins باشد، احتمالاً افزونه مشکل دارد. اگر داخل themes باشد، قالب را بررسی کنید.
روش ششم: محدودیت حافظه PHP را افزایش دهید
اگر در لاگ خطا عبارتی شبیه Allowed memory size exhausted مشاهده کردید، احتمالاً حافظه PHP کافی نیست. در این حالت میتوانید مقدار حافظه وردپرس را در فایل wp-config.php افزایش دهید:
define(‘WP_MEMORY_LIMIT’, ‘256M’);
توجه کنید که این مقدار فقط زمانی اثرگذار است که هاست اجازه استفاده از حافظه بیشتر را بدهد. اگر محدودیت از سمت سرور باشد، باید از پشتیبانی هاست بخواهید منابع یا تنظیمات PHP را بررسی کند.
روش هفتم: نسخه PHP را بررسی کنید
نسخه PHP نقش مهمی در عملکرد وردپرس دارد. اگر سایت بعد از تغییر نسخه PHP دچار خطای بحرانی شده، ممکن است قالب یا افزونهای با نسخه جدید سازگار نباشد. همچنین استفاده از نسخههای خیلی قدیمی PHP میتواند باعث ناسازگاری و مشکلات امنیتی شود.
از کنترلپنل هاست، نسخه PHP را بررسی کنید و با نیازمندیهای قالب و افزونههای اصلی سایت تطبیق دهید. اگر بعد از ارتقا خطا ایجاد شده، برای تست میتوانید موقتاً به نسخه قبلی سازگار برگردید؛ اما راهحل نهایی معمولاً بهروزرسانی یا جایگزینی افزونه و قالب ناسازگار است.
روش هشتم: فایلهای اصلی وردپرس را جایگزین کنید
اگر احتمال میدهید فایلهای اصلی وردپرس ناقص یا خراب شدهاند، میتوانید یک نسخه سالم از وردپرس را از منبع رسمی دریافت کنید و پوشههای wp-admin و wp-includes را جایگزین کنید. هنگام انجام این کار، مراقب باشید پوشه wp-content و فایل wp-config.php را حذف یا جایگزین نکنید، چون اطلاعات قالب، افزونهها، آپلودها و تنظیمات اصلی سایت در آنها قرار دارد.
این روش برای زمانی مناسب است که بهروزرسانی وردپرس ناقص مانده یا برخی فایلهای اصلی سایت بهاشتباه حذف شدهاند.
روش نهم: آخرین تغییرات سایت را برگردانید
اگر خطا دقیقاً بعد از یک تغییر مشخص ایجاد شده، همان تغییر را هدف بگیرید. برای مثال:
- اگر افزونهای نصب کردهاید، آن را غیرفعال کنید.
- اگر قالب را تغییر دادهاید، به قالب قبلی برگردید.
- اگر کدی به functions.php اضافه کردهاید، همان کد را حذف کنید.
- اگر وردپرس، قالب یا افزونه را بهروزرسانی کردهاید، لاگ خطا را بررسی کنید تا ناسازگاری مشخص شود.
در بسیاری از موارد، دانستن آخرین تغییر انجامشده سریعترین مسیر برای رفع خطای بحرانی وردپرس است.
روش دهم: بکاپ سالم را بازیابی کنید
اگر سایت کاملاً از دسترس خارج شده و علت خطا مشخص نیست، بازیابی بکاپ سالم میتواند راهحل سریعتری باشد. بکاپ باید مربوط به زمانی باشد که سایت بدون مشکل کار میکرده است. بعد از بازیابی، بهتر است تغییرات اخیر را مرحلهای انجام دهید تا علت اصلی دوباره شناسایی شود.
اگر سایت فروشگاهی یا دارای ثبتنام کاربر است، قبل از ریستور کامل بکاپ دقت کنید که اطلاعات جدید سفارشها، کاربران یا فرمها از بین نرود. در چنین شرایطی بهتر است با احتیاط بیشتری عمل شود.
جدول عیبیابی سریع خطای بحرانی وردپرس
| نشانه | علت احتمالی | اقدام پیشنهادی |
|---|---|---|
| خطا بعد از نصب افزونه | ناسازگاری یا خطای افزونه | غیرفعالکردن افزونه و بررسی لاگ |
| خطا بعد از تغییر قالب | مشکل قالب یا functions.php | فعالکردن قالب پیشفرض |
| نمایش صفحه سفید همراه با خطا | Fatal Error یا کمبود حافظه | فعالکردن دیباگ و افزایش حافظه PHP |
| خطا بعد از تغییر نسخه PHP | ناسازگاری افزونه یا قالب | بررسی نسخه PHP و بهروزرسانی موارد ناسازگار |
| عدم دریافت ایمیل خطای وردپرس | مشکل ارسال ایمیل سایت | بررسی تنظیمات ایمیل و استفاده از لاگ خطا |
چه زمانی باید از متخصص کمک بگیریم؟
اگر به فایلهای هاست، دیتابیس یا تنظیمات PHP مسلط نیستید، بهتر است تغییرات حساس را بدون بررسی انجام ندهید. همچنین اگر سایت فروشگاهی، شرکتی یا پرترافیک دارید، عیبیابی نادرست ممکن است باعث از دست رفتن داده یا طولانیشدن قطعی سایت شود.
در مواردی مثل خطاهای تکرارشونده، ناسازگاری پیچیده بین افزونهها، خرابی دیتابیس، مشکل همزمان با HTTPS، خطای اتصال به پایگاه داده یا عدم دسترسی به پیشخوان، بررسی تخصصی میتواند مسیر رفع مشکل را کوتاهتر و امنتر کند.
جمعبندی
برای رفع خطای بحرانی وردپرس، ابتدا ایمیل خطای وردپرس و حالت بازیابی را بررسی کنید. سپس افزونهها و قالب را بهصورت مرحلهای غیرفعال کنید، دیباگ وردپرس و error_log هاست را بخوانید، نسخه PHP و محدودیت حافظه را کنترل کنید و در صورت نیاز فایلهای اصلی وردپرس یا بکاپ سالم را بازیابی کنید.
مهمترین نکته این است که بدون بکاپ و بدون بررسی علت خطا، چند تغییر همزمان انجام ندهید. عیبیابی مرحلهای کمک میکند عامل اصلی خطای Critical Error مشخص شود و سایت با کمترین ریسک به حالت عادی برگردد.
