دیدن خطای بحرانی در هر سیستمی میتواند بسیار ناامیدکننده باشد. اما اگر در سایت وردپرس خود با پیام “There Has Been a Critical Error on Your Website” مواجه شدید، نگران نباشید!
در اکثر مواقع خطاهای بحرانی نتیجه تداخل افزونهها، فایلهای قالب و یا مسائل مربوط به PHP است. بههرحال این خطا، یکی از رایجترین خطاهایی است که مدیران وردپرس ممکن است با آن مواجه شوند و راههای مختلفی برای رفع آن وجود دارد.
ما در این پست، مراحلی که میتوان برای یافتن و رفع سریع این خطا در سایت وردپرس خود انجام دهید را مرور میکنیم. همچنین توضیح خواهیم داد که چرا این اتفاق در وهله اول رخ میدهد و چگونه میتوان از بروز آن جلوگیری کرد.
خطای بحرانی در وردپرس چیست؟
دیدن پیام “There Has Been a Critical Error on Your Website” در وردپرس به این معنا است که یک ارور مرگبار PHP هنگام اجرای کد در سایت شما وجود دارد. این اتفاق زمانی میافتد که یک اسکریپت PHP دیگر اجرا نشده و قادر به تکمیل فرایند نیست.
این پیغام در اصل میگوید که وردپرس شما در بارگیری فایلهای اصلی، افزونهها یا عملکردهای قالب شکستخورده است و میتوان آن را به محدودیت منابع، خطاهای مربوط به کد یا حتی بدافزار نسبت داد.
چرا خطای حیاتی در وردپرس رخ میدهد؟
دلایل این اتفاق را معمولاً میتوان از بین مشکلات زیر پیدا کرد:
- مشکلات موجود در فایلهای اصلی وردپرس: اگر هر یک از فایلهای اصلی وردپرس شما خراب یا گم شده باشد، احتمالاً خطای حیاتی دریافت خواهید کرد. همچنین این دسته از پیامها ممکن است در صورت بهروزرسانی ناموفق وبسایت یا دستکاری فایلهای اصلی رخ دهند.
- فایلهای قالب شکسته یا نقص در پلاگین: وجود خرابی در فایلهای قالب و پلاگین وردپرس نیز میتواند منجر به بروز خطای وبسایت شود. البته بیشتر بهترین افزونهها و تمهای وردپرس کاملاً آزمایش شدهاند و احتمال بروز خطا در آنها پایین است؛ اما قطعاً تداخل بین پلاگینها و کدهای سفارشی میتواند منجر به پیغام خطای حیاتی شود.
- خطاهای نحوی: کدهای سفارشی میتوانند به طور ناخواسته اجرای کدهای PHP معمولی را با مشکل روبهرو کنند، بهخصوص اگر حاوی خطاهای نحوی یا مسیرهایی با کاراکترهای ناامن باشند؛ بنابراین تغییرات اخیر در وبسایت خود را برای پیداکردن خطاهای نحوی احتمالی در کد بررسی کنید.
- آلودگی بدافزار: برخی از آلودگیهای بدافزار میتواند منجر به بروز خطاهای حیاتی در وردپرس شود. وبسایت خود را برای یافتن بدافزار اسکن کرده و کدهای مخرب آن را پاک کنید.
- محدودیتهای حافظه PHP: صاحبان وبسایت اغلب هنگام تلاش برای آپلود رسانه یا انجام تسکهای خود با خطاهای حیاتی مواجه میشوند که میتواند نشاندهنده این باشد که PHP در هنگام اجرای یک اسکریپت خاص به مرز محدودیتهای از پیش تعریفشدهٔ خود رسیده است.
- نسخه قدیمی PHP: اگر سایت شما از نسخه PHP کمتر از 7.4 استفاده میکند، احتمالاً در معرض این خطاها قرار خواهید گرفت. پس اگر از PHP 5.x استفاده میکنید، قطعاً باید دراسرعوقت آن را ارتقا دهید تا از بروز آن جلوگیری کنید.
- نسخه PHP ناسازگار: برخی از وبسایتها به استفاده از کدهای قدیمی یا کدهای سفارشی که بر پایهی نسخه قدیمی PHP طراحی شدهاند، متکی هستند. در نتیجه گاهی اوقات ارتقای PHP به نسخه جدیدتر (و ایمنتر) نیز میتواند باعث خرابی وبسایتهای قدیمی شود.
چگونه پیام خطای بحرانی را در وردپرس رفع کنیم
برای مشخصکردن علت اصلی مشکل و رفع خطای حیاتی وردپرس، باید مراحل مختلف زیر را طی کنید:
1- صندوق ورودی ایمیل ادمین خود را برای دریافت دستورالعمل بررسی کنید
اگر به ایمیل ادمین خود دسترسی دارید، اولین قدم این است که صندوق ورودی خود را بررسی کنید.
در این مواقع شما باید یک ایمیل از سمت وردپرس دریافت کنید که حاوی اطلاعات مهم در مورد مشکل است. موضوع این ایمیل “Your Site Is Experiencing a Technical Issue” میباشد و شامل جزئیات مربوط به تضاد افزونه یا سایر مشکلاتی است که شناسایی شدهاند.

در این ایمیل، پیوند مناسبی را نیز پیدا خواهید کرد که به شما امکان میدهد برای رفع مشکل در وبسایت وردپرس خود به حالت بازیابی دسترسی پیدا کنید. برای دسترسی به آن:
- روی لینک حالت بازیابی موجود در ایمیل کلیک کنید.
- با اعتبار خود وارد شوید.
- به داشبورد وردپرس خود بروید.
تبریک، حالا شما حالت بازیابی را فعال کردهاید! از اینجا، اعلانهایی درباره خطای حیاتی، علت آن و نحوه رفع آن پیدا خواهید کرد. اکثر مواقع این اطلاعات به شما کمک میکند تا تشخیص دهید کدام افزونه باعث تضاد میشود.
پس از آن مؤلفهای که مشکل ایجاد میکند را غیرفعال کنید و سعی کنید یک نسخهٔ جدیدتر یا یک جایگزین معتبر بهجای آن نصب کنید. همچنین هرزمان که میخواهید میتوان از حالت بازیابی خارج شده تا بررسی کنید و ببینید آیا وبسایت وردپرس شما آنطور که باید کار میکند یا خیر.
اگر نمیتوانید به ایمیل عیبیابی خود دسترسی پیدا کنید یا اطلاعات کافی برای حل مشکل ارائه نشده به مرحله بعدی بروید تا اشکالزدایی را برای سایت خود فعال کنید.
2- Debugging در وردپرس را فعال کنید
وبسایتهای وردپرس با یک ابزار عیبیابی همراه هستند که پیداکردن ریشهٔ خطاهای وبسایت را آسانتر میکند، این ویژگی به WP_DEBUG معروف است.
برای شروع، WP_Debug را برای یافتن دلیل خطاهای وبسایت خود فعال کنید.
- فایل wp-config.php خود را باز کنید: بهحساب FTP خود وارد شوید و wp-config.php را در فهرست اصلی وردپرس خود جستجو کنید.
- یافتن WP_DEBUG: به آن خطی در فایل wp-config بروید که در آن WP_DEBUG تعریف شده است. اگر غیرفعال باشد، به این صورت خواهد بود: define(‘WP_DEBUG’, false);
- WP_DEBUG را فعال کنید: فایل wp-config خود را به کد زیر بهروز کنید:

پارامتر define(‘WP_DEBUG_LOG’, true); یک فایل debug.log در دایرکتوری ./wp-content ایجاد میکند که میتوانید در اوقات فراغت خود به آن مراجعه کنید.
3- از وبسایت خود نسخه پشتیبان تهیه کنید
قبل از ایجاد هرگونه تغییر در فایلهای اصلی وبسایت خود، حتماً از وبسایت خود یک نسخه پشتیبان تهیه کنید. رفع خطاهای حیاتی وردپرس گاهی اوقات میتواند دردسرساز شده و قطعاً شما نمیخواهید آن را با مشکلات فعلی خود ترکیب کنید.
اگر از SSH استفاده میکنید، میتوانید بهراحتی با استفاده از WP-CLI از وبسایت وردپرس خود نسخه پشتیبان بگیرید. برای آموزش این ویدئوی کوتاه را ببینید:
4- مشکلات موجود در فایلهای اصلی وردپرس را بررسی کنید
به وبسایت خود رفته و فایل debug.log را در دایرکتوری ./wp-content برای یافتن هرگونه خطای PHP بررسی کنید. اغلب، این خطاها به فایلهای wp-includes یا wp-admin اشاره میکنند. در زیر نمونهای از خطای فایل اصلی آمده است که ممکن است با آن مواجه شوید:

اگر در اینجا خطایی پیدا کردید، باید مراحلی را برای دانلود و باز کردن فایلهای اصلی و جایگزینی نسخههای خراب در سایت خود طی کنید. شما میتوانید بهصورت دستی فایلهای اصلی را بهروز کرده یا کل پوشههای /wp-includes/ یا /wp-admin/ را در دایرکتوری نصب وردپرس بهروز کنید.
5- فایلهای قالب یا افزونهای که اخیراً اصلاح شده را بررسی کنید
گاهی اوقات تضاد بین افزونهها یا تمها میتواند منجر به خطاهای مهم در وردپرس شود.
اگر اخیراً افزونه یا قالب جدیدی را نصب یا بهروزرسانی کردهاید، سعی کنید به طور موقت این مؤلفهها را از پنل مدیریت خود غیرفعال کنید:

سپس یکییکی آنها را فعال کنید تا منبع مشکل شناسایی شود.
سادهترین راه برای تغییر قالب وردپرس، داخل پنل مدیریت است. اما اگر پنل مدیریت شما بارگیری نمیشود، میتوانید به یک قالب پیشفرض در دیتابیس خود بازگردید.
قبل از شروع، باید مشخص کنید که کدام قالب پیشفرض وردپرس را نصب کردهاید. به File Manager خود بروید سپس wp-content > themes folder. قالبهای پیش فرضی را که پیدا کردید یادداشت کنید – برای مثال “twentytwenty” یا “twentytwentyone”. حالا آماده هستید که تم خود را برگردانید.
برای بازگشت به یک قالب پیشفرض در دیتابیس وردپرس:
- دیتابیس خود را در phpMyAdmin باز کنید.
- از منوی سمت چپ، روی جدول _options کلیک کنید.
- ردیفهای تمپلت و stylesheet را پیدا کنید (بیشتر در صفحه 2 یافت میشوند).
- قالب option_value را با قالب پیش فرضی که در وبسایت شما نصب شده است جایگزین کنید (یعنی “twentytwenty”).
- برای ذخیره enter را فشار دهید.
- گزینه_value را برای stylesheet با موضوع پیش فرضی که در وبسایت شما نصب شده است جایگزین کنید.
- برای ذخیره enter را فشار دهید.
در مرحله بعد، وبسایت خود را بررسی کنید تا تشخیص دهید که آیا قالب مقصر است یا خیر. همچنین میتوانید یک نسخه جدید از قالب اصلی خود را دوباره نصب کنید تا ببینید آیا مشکل حل شده است یا خیر. اگر قالب دلیل مشکل شما نبود، در مرحله بعد باید افزونههای خود را تست کنید.
نام wp-content/plugins را به plugins-disabled تغییر دهید. اگر این کار مشکل را برطرف کرد، بدانید که مقصر آن یک یا چند پلاگین در وبسایت شما است و با تغییر نام جداگانهٔ هر دایرکتوری پلاگین میتوانید عیبیابی بیشتری کنید. اگر تغییر نام کل دایرکتوری افزونهها مشکل را برطرف نکرد، پس پلاگینهای شما علت اصلی مشکل به وجود آمده نیستند.
6- محدودیت حافظه PHP را در وردپرس افزایش دهید
وب سرور شما مقدار محدودی حافظه (یا RAM) دارد. ازآنجاییکه وردپرس محدودیتی برای مقدار حافظهای که هر اسکریپت PHP میتواند استفاده کند تعیین میکند که در صورت تجاوز از آن حد، ممکن است منجر به بروز خطاهای بحرانی شود.
اگر گزارشهای عیبیابی وردپرس شما چیزی شبیه “memory exhausted“ را نشان میدهد، محدودیت حافظه PHP احتمالاً دلیل آن است. برای افزایش محدودیت PHP:
- فایل wp-config.php خود را باز کنید.
- به انتهای فایل رفته و محدودیت حافظه خود را تعیین کنید: define( ‘WP_MEMORY_LIMIT’, ‘128M’ );
- فایل را ذخیره کنید.

بعد، وبسایت خود را بررسی کنید و ببینید آیا خطای بحرانی برطرف شده یا خیر. در صورت رفع مشکل میتوانید محدودیت حافظه را تا 256 مگابایت افزایش دهید.
بااینحال، هنگام افزایش محدودیتهای حافظه PHP خود مراقب باشید؛ زیرا اگر آن را بیش از حد تنظیم کنید، اسکریپتهای پیکربندی غلط میتوانند سرعت وبسایت شما را کاهش داده یا محدودیتهای اعمال شده توسط ارائهدهندهٔ هاست را نقض کنند.
7- PHP خود را بهروز کنید
نسخههای جدید وردپرس حداقل به PHP با نسخه 7.4 نیاز دارند؛ بنابراین اگر از نسخه قدیمی PHP استفاده میکنید، رفع خطای بحرانی ممکن است بهسادگی با ارتقای PHP به نسخه 7.4 یا بالاتر رفع شود.
خود وردپرس یک نمودار مفید ارائه میدهد که در آن نشان میدهد کدام نسخههای PHP با نسخه وردپرس شما هماهنگ است. میتوانید با رفتن به داشبورد وردپرس خود و سپس Tools > Site Health > Info ، بررسی کنید که از کدام نسخه استفاده میکنید. در نهایت بخش Server را در آن گسترش دهید تا جزئیات مربوط به نسخه PHP خود را بیابید.

8- برای یافتن بدافزار اسکن کنید
بدافزارها اغلب منجر به بروز خطای حیاتی در وبسایت میشود؛ بنابراین بهتر است صفحه وب و سرور خود را اسکن کنید تا شاخصهای در معرض خطر، درهای پشتی (backdoors) و اسکریپتهای مخرب را که ممکن است باعث ایجاد مشکل شوند، شناسایی کنید.
با SiteCheck میتوانید وبسایت خود را بهصورت رایگان برای یافتن بدافزار اسکن کنید. این سایت میتواند به شما کمک کند تا بفهمید که آیا علائم ظاهری آلودگی کد منبع در وبسایت شما وجود دارد یا خیر.

همهٔ آلودگیها نمود خارجی ندارند؛ بنابراین بهتر است وبسایت خود را برای یافتن بدافزار در قسمت سرور نیز اسکن کرده تا به شناسایی اسکریپتهای مخرب PHP، درهای پشتی و اسکیمرهای کارت اعتباری که در سطح صفحه یافت نمیشوند کمک کنید. در نهایت بدافزار شناسایی شده را پاکسازی کنید.
نتیجه
خطاهای حیاتی ممکن است به دلایل بیشماری در وردپرس رخ دهد، اما اغلب این خطاها نتیجه تداخل بین افزونهها، فایلهای قالب و مسائل مربوط به PHP هستند.
اگر از قبل یک نسخهٔ پشتیبان از وبسایت خود دارید، یکی از سریعترین راهها برای حل مشکل این است که بهسادگی سایت خود را به آخرین پیکربندی مناسب خود برگردانید. اما ممکن است لازم شود تا وبسایت خود را برای یافتن نشانگرهای در معرض خطر یا بدافزارها اسکن کنید که ممکن است منجر به خطاهای نحوی، اسکریپتهای مخرب PHP، تداخل افزونهها یا سایر مسائل شده باشد که ممکن است اجرای PHP را مختل کند.
But you may want to scan your website for indicators of compromise or malware that may have resulted in syntax errors, malicious PHP scripts, plugin conflicts or other issues which may be interrupting normal PHP execution.