WordPress Error & Recovery

Plugin Conflict คืออะไร ทำไมทำให้เว็บ WordPress พัง

Plugin Conflict คืออะไร ทำไมทำให้เว็บ WordPress พัง

Plugin Conflict คือปัญหาที่เกิดขึ้นเมื่อ plugin สองตัวขึ้นไปใน WordPress ทำงานขัดแย้งกัน ส่งผลให้เว็บไซต์แสดงข้อผิดพลาด โหลดช้าผิดปกติ หรือล่มสนิทโดยไม่มีคำเตือน ปัญหานี้พบได้บ่อยกว่าที่คิด โดยเฉพาะในเว็บที่ติดตั้ง plugin สะสมมาหลายปีโดยไม่ได้ตรวจสอบความเข้ากันได้ และมักเป็นสาเหตุหลักของ WordPress Error 500 และ หน้าจอขาว (White Screen of Death)

nn

อาการที่บ่งบอกว่าเกิด Plugin Conflict

nn

Plugin Conflict ไม่ได้มีอาการเดียว แต่จะแสดงออกมาในหลายรูปแบบ ขึ้นอยู่กับว่า plugin ที่ขัดแย้งกันนั้นทำหน้าที่อะไร อาการที่พบบ่อยได้แก่:

n

    n

  • เว็บขึ้น Internal Server Error (500) หรือ Critical Error ทันทีหลังเปิดใช้ plugin ใหม่
  • n

  • หน้า Admin Dashboard โหลดไม่ขึ้น หรือบางเมนูหายไปกะทันหัน
  • n

  • JavaScript ทำงานผิดพลาด เช่น ปุ่มกดไม่ได้ slider ไม่เลื่อน หรือ popup ไม่แสดง
  • n

  • หน้าเว็บแสดงผลพัง layout ผิดเพี้ยน หรือข้อความ PHP error ขึ้นตามหน้าต่าง ๆ
  • n

  • การทำงานของฟีเจอร์บางอย่างหยุดกะทันหัน เช่น ฟอร์มส่งไม่ได้ หรือตะกร้าสินค้าไม่บันทึก
  • n

nn

WordPress White Screen of Death / Error — WP Doctor Thailand
หน้าจอขาวหรือ Error ที่ทำให้เข้าเว็บ WordPress ไม่ได้

nn

สาเหตุที่ทำให้เกิด Plugin Conflict

nn

Plugin แต่ละตัวถูกพัฒนาโดยนักพัฒนาคนละทีม คนละมาตรฐาน การที่ plugin สองตัวมาใช้งานร่วมกันจึงอาจเกิดการชนกันได้จากหลายสาเหตุ:

n

    n

  • ใช้ Library ซ้ำกัน: plugin สองตัวโหลด jQuery หรือ JavaScript library เวอร์ชันต่างกัน ทำให้ตัวหลังเขียนทับตัวแรก
  • n

  • ฟังก์ชันหรือ Class ชื่อซ้ำกัน: PHP ไม่อนุญาตให้มีฟังก์ชันชื่อเดียวกันสองครั้ง ถ้า plugin ไม่ใช้ namespace ก็จะชนกันทันที
  • n

  • แย่งควบคุม WordPress Hook: plugin หลายตัวอาจ hook เข้า filter หรือ action เดียวกัน แล้วทำงานในลำดับที่ขัดแย้งกัน
  • n

  • ขัดกับเวอร์ชัน PHP หรือ WordPress: plugin เก่าที่ไม่ได้อัปเดตอาจใช้ฟังก์ชัน PHP ที่ถูกลบออกแล้วในเวอร์ชันใหม่ ทำให้เกิด PHP Version Error
  • n

  • ทำงานซ้ำซ้อน: เช่น มี caching plugin สองตัว หรือ SEO plugin สองตัวพร้อมกัน ต่างแย่งเขียน output เดียวกัน
  • n

nn

สิ่งสำคัญที่ต้องรู้: Plugin Conflict ไม่ได้เกิดแค่ตอนติดตั้ง plugin ใหม่ การอัปเดต plugin ตัวใดตัวหนึ่งก็อาจทำให้เกิด conflict กับ plugin ที่ติดตั้งอยู่ก่อนได้เสมอ หากเว็บพังหลังอัปเดต ให้อ่านเพิ่มเติมที่ WordPress พังหลังอัปเดต Plugin

nn

วิธีตรวจหาว่า Plugin ตัวไหนเป็นตัวการ

nn

ก่อนแก้ปัญหา ต้องหาก่อนว่า plugin คู่ไหนกันแน่ที่ขัดแย้งกัน วิธีที่ได้ผลที่สุดคือการทำ bisect (แบ่งครึ่งทดสอบ) ดังนี้:

n

    n

  1. สำรองข้อมูลเว็บก่อนเสมอ ก่อนทำขั้นตอนใด ๆ
  2. n

  3. ไปที่ Plugins → Installed Plugins แล้ว Deactivate All (ปิดทุกตัว ยกเว้น plugin ที่จำเป็นจริง ๆ เช่น WooCommerce ถ้าเว็บเป็นร้านค้า)
  4. n

  5. ถ้าเว็บกลับมาปกติ แสดงว่าปัญหาอยู่ที่ plugin ใดสักตัว จากนั้นค่อย ๆ เปิด plugin ทีละตัว แล้วรีเฟรชหน้าเว็บหลังเปิดแต่ละตัว
  6. n

  7. เมื่อพบ plugin ที่ทำให้เว็บพัง ให้ทดสอบต่อว่า plugin นั้นขัดกับตัวไหนโดยเปิดตัวอื่น ๆ ทีละตัว
  8. n

  9. ถ้าเข้า Admin ไม่ได้เลย ให้ Deactivate plugin ผ่าน phpMyAdmin (ตาราง wp_options ฟิลด์ active_plugins) หรือลบ folder ของ plugin ผ่าน FTP/SFTP แทน
  10. n

nn

สำรองข้อมูลและดูแล WordPress — WP Doctor Thailand
สำรองข้อมูล WordPress ทั้งไฟล์และฐานข้อมูลก่อนแก้ไข

nn

วิธีแก้ไข Plugin Conflict

nn

เมื่อรู้แล้วว่า plugin คู่ไหนขัดกัน มีแนวทางแก้ไขดังนี้:

n

    n

  • อัปเดต plugin ทั้งสองตัวให้เป็นเวอร์ชันล่าสุด นักพัฒนาบางรายแก้ไข conflict ไว้แล้วในเวอร์ชันใหม่
  • n

  • หา plugin ทดแทน: ถ้า plugin ตัวหนึ่งไม่จำเป็นจริง ๆ ให้เปลี่ยนเป็นตัวอื่นที่ทำงานเข้ากันได้ดีกว่า
  • n

  • ติดต่อผู้พัฒนา: แจ้ง Support ของ plugin พร้อมระบุว่าเกิด conflict กับ plugin ตัวไหน เวอร์ชันอะไร มักได้รับการแก้ไขในอัปเดตถัดไป
  • n

  • ปิด plugin ที่ซ้ำซ้อน: เช่น ถ้ามี caching plugin สองตัว ให้เหลือตัวเดียวที่เหมาะกับ hosting ของคุณ
  • n

  • ตรวจสอบ PHP error log: error log จะบอกได้ชัดว่า function หรือ file ไหนที่ทำให้เกิดปัญหา ช่วยแคบขอบเขตการแก้ไขได้มาก
  • n

nn

วิธีป้องกัน Plugin Conflict ในระยะยาว

nn

    n

  • ทดสอบ plugin ใหม่บน staging site ก่อนติดตั้งบนเว็บจริงเสมอ — นี่คือวิธีป้องกันที่ดีที่สุด
  • n

  • อัปเดต WordPress, PHP, และ plugin ทุกตัวอย่างสม่ำเสมอ เพราะนักพัฒนามักแก้ไข compatibility ในทุกเวอร์ชัน
  • n

  • ลด plugin ที่ไม่จำเป็นออก — ยิ่งมีน้อย โอกาส conflict ก็ยิ่งต่ำ
  • n

  • เลือกใช้ plugin ที่มี rating ดี มีการอัปเดตสม่ำเสมอ และมีผู้ใช้งานจำนวนมาก
  • n

  • ตรวจสอบหน้า “Tested up to” ของ plugin ว่าเข้ากันได้กับ WordPress เวอร์ชันปัจจุบันของคุณหรือไม่
  • n

nn

เมื่อไหร่ควรขอความช่วยเหลือจากผู้เชี่ยวชาญ

nn

มีบางสถานการณ์ที่การแก้ปัญหาเองอาจทำให้เรื่องซับซ้อนขึ้น เช่น เว็บเป็นร้านค้าออนไลน์ที่ต้องการ uptime สูง หรือ conflict เกิดจาก custom code ที่ผสมกับ plugin หลายตัว หรือคุณเข้า Admin ไม่ได้เลยและไม่คุ้นเคยกับ phpMyAdmin และ FTP ในกรณีเหล่านี้ การให้ผู้เชี่ยวชาญเข้ามาจัดการจะเร็วและปลอดภัยกว่าการลองผิดลองถูกเอง ซึ่งอาจทำให้ข้อมูลเสียหายได้ สามารถดูรายละเอียดบริการได้ที่ บริการแก้ WordPress ล่ม / Error

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

Plugin Conflict ทำให้เว็บพังได้ถาวรไหม?

ไม่ถาวร Plugin Conflict ทำให้เว็บแสดงข้อผิดพลาดหรือทำงานผิดปกติ แต่สามารถแก้ไขได้โดยการปิดหรือลบ plugin ที่ขัดแย้งกันออก เว็บจะกลับมาทำงานได้ตามปกติ

ถ้าเข้า WordPress Admin ไม่ได้เลย จะปิด plugin ได้อย่างไร?

สามารถปิด plugin ได้สองวิธีโดยไม่ต้องเข้า Admin คือเข้าไปลบหรือเปลี่ยนชื่อโฟลเดอร์ plugin ผ่าน FTP/File Manager ของ hosting หรือแก้ไขค่า active_plugins ในตาราง wp_options ผ่าน phpMyAdmin

Plugin ที่เคยใช้งานได้ดีกลับมา conflict หลังอัปเดต ปกติไหม?

เป็นเรื่องปกติมาก เพราะการอัปเดต plugin ตัวหนึ่งอาจเปลี่ยนวิธีทำงานที่ไปขัดกับ plugin ตัวอื่น จึงควรทดสอบการอัปเดตบน staging site ก่อนนำขึ้น production เสมอ

มี plugin ช่วยตรวจหา Plugin Conflict ได้ไหม?

มี plugin อย่าง Health Check & Troubleshooting ที่ช่วยให้คุณทดสอบ plugin ในโหมด safe โดยไม่กระทบผู้ใช้จริง แต่วิธีที่แม่นยำที่สุดยังคงเป็นการปิดทีละตัวแล้วทดสอบตามขั้นตอน

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

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

LINE ส่งปัญหา