WordPress Error & Recovery

Critical Error ใน WordPress แก้ยังไง

Critical Error ใน WordPress แก้ยังไง

หากคุณเปิดเว็บ WordPress แล้วเจอข้อความ “There has been a critical error on this website” พร้อมลิงก์ให้เรียนรู้เพิ่มเติม นั่นคือสัญญาณว่า WordPress ตรวจพบข้อผิดพลาดร้ายแรงระดับ PHP จนไม่สามารถโหลดหน้าเว็บได้ตามปกติ ปัญหานี้มักเกิดขึ้นกะทันหันหลังอัปเดต Plugin, Theme หรือ WordPress Core และทำให้ทั้งหน้าเว็บและ Admin Dashboard เข้าไม่ได้พร้อมกัน บทความนี้จะพาคุณวิเคราะห์สาเหตุและแก้ไขทีละขั้นตอนโดยไม่ต้องพึ่งผู้เชี่ยวชาญเสมอไป

Critical Error คืออะไร และต่างจาก Error 500 อย่างไร

Critical Error คือข้อผิดพลาดระดับ PHP Fatal Error ที่ WordPress จับได้ผ่านระบบ Error Protection ที่เพิ่มมาตั้งแต่ WordPress 5.2 ข้อความนี้จะแสดงแทนหน้าจอขาวเปล่า เพื่อให้เจ้าของเว็บรู้ว่าเกิดอะไรขึ้นและมีทางแก้ไข ในขณะที่ WordPress Error 500 เป็นข้อผิดพลาดระดับ Server ที่เกิดได้จากหลายสาเหตุกว่า Critical Error จึงเป็น subset หนึ่งของ Error 500 ที่ WordPress สามารถระบุสาเหตุได้ชัดเจนกว่า

สาเหตุหลักที่พบบ่อย ได้แก่:

  • Plugin หรือ Theme มีโค้ด PHP ที่เข้ากันไม่ได้ กับ PHP หรือ WordPress เวอร์ชันปัจจุบัน
  • ความขัดแย้งระหว่าง Plugin สองตัวที่ใช้ฟังก์ชันชื่อเดียวกัน
  • PHP Memory Limit ถูกกินจนหมด
  • ไฟล์ Core ของ WordPress เสียหาย หลังอัปเดตไม่สำเร็จ
  • PHP Version ไม่รองรับ Plugin หรือ Theme ที่ใช้งานอยู่
WordPress White Screen of Death / Error — WP Doctor Thailand
หน้าจอขาวหรือ Error ที่ทำให้เข้าเว็บ WordPress ไม่ได้

วิธีตรวจสอบว่าปัญหาเกิดจากอะไร

WordPress จะส่งอีเมลแจ้งเตือนไปยัง Admin Email พร้อม Recovery Link เมื่อเกิด Critical Error ให้เช็กอีเมลก่อนเป็นอันดับแรก Recovery Link นี้จะพาเข้า WordPress Admin โดยปิด Plugin ทั้งหมดชั่วคราว ซึ่งช่วยยืนยันได้ทันทีว่าปัญหามาจาก Plugin หรือ Theme

หากไม่ได้รับอีเมล ให้ตรวจสอบ Error Log ผ่าน File Manager ของ Hosting:

  • เปิดไฟล์ wp-content/debug.log (ถ้ามี)
  • หรือเปิด php_error.log ใน Root Directory
  • มองหาบรรทัดที่ขึ้นต้นด้วย PHP Fatal error หรือ PHP Parse error จะบอกชื่อไฟล์และบรรทัดที่มีปัญหาชัดเจน

นอกจากนี้ ให้เปิด Debug Mode โดยเพิ่มบรรทัดต่อไปนี้ใน wp-config.php:

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

วิธีแก้ Critical Error ทีละขั้นตอน

ทำตามลำดับนี้จากง่ายไปยาก หยุดเมื่อปัญหาหาย:

ขั้นที่ 1 — ปิด Plugin ทั้งหมดผ่าน FTP/File Manager

เข้า File Manager ของ Hosting แล้วเปลี่ยนชื่อโฟลเดอร์ wp-content/plugins เป็น plugins_backup จากนั้นลองเปิดเว็บ หากเว็บกลับมา แสดงว่าปัญหามาจาก Plugin ให้สร้างโฟลเดอร์ plugins ใหม่เปล่า แล้วย้าย Plugin กลับทีละตัวเพื่อหาตัวที่เป็นปัญหา สอดคล้องกับที่อธิบายใน Plugin Conflict คืออะไร

ขั้นที่ 2 — สลับเป็น Default Theme

หาก Plugin ไม่ใช่ตัวการ ให้เปลี่ยนชื่อโฟลเดอร์ Theme ปัจจุบันใน wp-content/themes/ WordPress จะสลับไปใช้ Default Theme โดยอัตโนมัติ หากเว็บกลับมา แสดงว่า Theme มีปัญหา ลองอัปเดตหรือติดต่อผู้พัฒนา Theme ดูรายละเอียดเพิ่มเติมได้ที่ Theme Conflict ทำให้เว็บ WordPress ล่ม

ขั้นที่ 3 — เพิ่ม PHP Memory Limit

เพิ่มบรรทัดนี้ใน wp-config.php ก่อนบรรทัด /* That's all, stop editing! */:

define('WP_MEMORY_LIMIT', '256M');

หรือเพิ่มใน .htaccess ด้วย php_value memory_limit 256M

ขั้นที่ 4 — ตรวจสอบ PHP Version

เข้าไปที่ cPanel หรือ Hosting Panel แล้วดูว่า PHP Version ที่ใช้อยู่รองรับ Plugin/Theme ของคุณหรือไม่ บาง Plugin ต้องการ PHP 8.0+ ในขณะที่บาง Plugin เก่ายังไม่รองรับ PHP 8.x อ่านเพิ่มเติมได้ที่ PHP Version ไม่รองรับ ทำให้ WordPress Error

ขั้นที่ 5 — Reinstall WordPress Core

ดาวน์โหลด WordPress เวอร์ชันล่าสุดจาก wordpress.org แล้ว Upload เฉพาะโฟลเดอร์ wp-admin และ wp-includes ทับของเดิม (ไม่ต้องแตะ wp-content และ wp-config.php) วิธีนี้จะแก้ไฟล์ Core ที่อาจเสียหายได้

สำรองข้อมูลและดูแล WordPress — WP Doctor Thailand
สำรองข้อมูล WordPress ทั้งไฟล์และฐานข้อมูลก่อนแก้ไข
จุดสำคัญ: Critical Error ส่วนใหญ่แก้ได้ด้วยการปิด Plugin หรือเปลี่ยน Theme ชั่วคราว หากทำตามขั้นตอนข้างต้นแล้วยังไม่หาย ให้ดู Error Log เพื่อระบุไฟล์และบรรทัดที่มีปัญหา แล้วค่อยแก้เฉพาะจุด

วิธีป้องกัน Critical Error ในอนาคต

  • ทดสอบก่อนอัปเดต: ใช้ Staging Site หรือ Local Environment ทดสอบการอัปเดตก่อนขึ้น Production เสมอ
  • Backup อัตโนมัติ: ตั้งค่า Backup ทุกวันด้วย Plugin เช่น UpdraftPlus เพื่อให้ Roll Back ได้ทันทีหากเกิดปัญหา
  • อัปเดตทีละตัว: อย่าอัปเดต Plugin, Theme และ WordPress Core พร้อมกันในครั้งเดียว ทำทีละตัวแล้วทดสอบก่อน ดูแนวทางที่ WordPress พังหลังอัปเดต Plugin
  • ตรวจสอบความเข้ากันได้: ก่อนติดตั้ง Plugin ใหม่ ให้ดูว่า Tested up to เวอร์ชัน WordPress ปัจจุบันหรือไม่
  • จำกัดจำนวน Plugin: Plugin ที่มากเกินไปเพิ่มโอกาสเกิด Conflict และกิน Memory

เมื่อไหร่ควรติดต่อผู้เชี่ยวชาญ

หากคุณทำตามขั้นตอนทั้งหมดแล้วยังแก้ไม่ได้ หรือ Error Log แสดงข้อผิดพลาดที่ไม่คุ้นเคย เช่น ปัญหาฐานข้อมูลร่วมด้วย (ลองดู Error Establishing a Database Connection), ไฟล์ Core เสียหายจำนวนมาก, หรือเว็บโดน Hack ทีม บริการแก้ WordPress ล่ม / Error ของเราพร้อมช่วยวิเคราะห์และแก้ไขให้ตรงจุด ประหยัดเวลากว่าลองผิดลองถูกเอง

คำถามที่พบบ่อย

Critical Error กับ White Screen of Death ต่างกันอย่างไร

White Screen of Death คือหน้าจอขาวเปล่าที่ไม่มีข้อความใดเลย ส่วน Critical Error จะมีข้อความแจ้งเตือนพร้อมลิงก์ Recovery ซึ่งเพิ่มมาใน WordPress 5.2 เพื่อให้แก้ไขได้ง่ายกว่า ทั้งสองปัญหามีสาเหตุคล้ายกันคือ PHP Fatal Error

Recovery Link ในอีเมลใช้งานได้นานแค่ไหน

Recovery Link มีอายุการใช้งาน 1 ชั่วโมงหลังจาก WordPress ส่งอีเมลให้ หากหมดอายุแล้วต้องแก้ไขผ่าน FTP หรือ File Manager แทน

ปิด Plugin ทั้งหมดแล้วเว็บกลับมา แต่ไม่รู้ว่า Plugin ไหนเป็นปัญหา ทำอย่างไร

ให้เปิด Plugin กลับทีละตัว แล้วรีเฟรชหน้าเว็บทุกครั้ง Plugin ตัวที่เปิดแล้วเว็บพังอีกครั้งคือตัวที่มีปัญหา ให้ลองอัปเดต Plugin นั้นหรือหาตัวทดแทน

Critical Error เกิดขึ้นบ่อย ๆ แสดงว่ามีปัญหาอะไรกับ Hosting ไหม

อาจเกิดจาก PHP Memory Limit ของ Hosting Plan ต่ำเกินไป หรือ Server Resources ไม่เพียงพอกับ Plugin ที่ใช้งาน ลองติดต่อ Hosting เพื่อขอเพิ่ม Memory Limit หรือพิจารณาอัปเกรด Plan

อ่านบทความหลักของหมวดนี้ WordPress Error 500 คืออะไร และแก้ไขอย่างไร

บทความอื่นในหมวดนี้

LINE ส่งปัญหา