เวลาเว็บ WordPress มีปัญหา เช่น หน้าขาว plugin ทำงานผิดปกติ หรือได้รับข้อความ Error กำกวม สิ่งแรกที่ควรทำคือเปิด Debug Mode เพื่อดูว่า WordPress บอกอะไรไว้จริง ๆ โดยค่าเริ่มต้น WordPress ซ่อน Error เหล่านั้นไว้ไม่ให้ผู้เยี่ยมชมเห็น แต่ถ้าเราเปิด Debug Mode ขึ้นมา Error จะถูกบันทึกลงไฟล์ให้เราอ่านได้ทันที
WP_DEBUG คืออะไร?
WordPress มี constant (ค่าคงที่) พิเศษหลายตัวที่ควบคุมการแสดงผล Error ไว้ใน wp-config.php โดยตัวหลักที่ต้องรู้คือ:
- WP_DEBUG — เปิด/ปิดระบบ Debug โดยรวม (true/false)
- WP_DEBUG_LOG — บันทึก Error ลงไฟล์
wp-content/debug.log - WP_DEBUG_DISPLAY — แสดง Error บนหน้าเว็บ (ควรตั้งเป็น false บน production)
- SCRIPT_DEBUG — โหลด CSS/JS ฉบับ unminified เพื่อ debug frontend
สำหรับเว็บ production ควรตั้งให้ Error บันทึกลง log อย่างเดียว ไม่แสดงบนหน้าเว็บ เพื่อไม่ให้ผู้เยี่ยมชมเห็น
วิธีแก้ไขไฟล์ wp-config.php ผ่าน File Manager ใน cPanel
- เข้า cPanel แล้วคลิก File Manager
- เปิดโฟลเดอร์
public_html(หรือโฟลเดอร์ที่ติดตั้ง WordPress) - หาไฟล์
wp-config.phpคลิกขวา → Edit - ค้นหาบรรทัด
define( 'WP_DEBUG', false ); - แทนที่ทั้งบรรทัดนั้นด้วยโค้ดด้านล่าง แล้วกด Save Changes
// เปิด Debug Mode (บันทึก Error ลง log, ไม่แสดงบนหน้าเว็บ)
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );
WP_DEBUG ในไฟล์ ให้เพิ่มโค้ดนี้ก่อนบรรทัด /* That's all, stop editing! */วิธีดู Error ใน debug.log
เมื่อเปิด WP_DEBUG_LOG แล้ว WordPress จะสร้างไฟล์ wp-content/debug.log อัตโนมัติ ทุกครั้งที่เกิด Error จะถูกเพิ่มเข้าไปในไฟล์นี้
วิธีเปิดดูไฟล์ debug.log ผ่าน File Manager:
- ไปที่
public_html/wp-content/ - หาไฟล์
debug.logแล้วคลิกขวา → View - อ่าน Error แต่ละบรรทัด ซึ่งจะบอกว่า Error เกิดที่ไฟล์ใด บรรทัดที่เท่าไหร่
ตัวอย่าง Error ใน debug.log ที่มักพบบ่อย:
[09-Oct-2026 10:15:23 UTC] PHP Warning: Undefined variable $post_id in
/home/user/public_html/wp-content/plugins/my-plugin/functions.php on line 42
[09-Oct-2026 10:15:23 UTC] PHP Deprecated: Function get_magic_quotes_gpc() is
deprecated in /home/user/public_html/wp-includes/load.php on line 656
Debug Mode สำหรับ Development vs Production
ควรตั้งค่า Debug Mode ต่างกันตามสถานะของเว็บ:
สำหรับ Development (เว็บทดสอบ)
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', true ); // แสดง Error บนหน้าเว็บได้
define( 'SCRIPT_DEBUG', true ); // โหลด JS/CSS เต็มไม่ minify
สำหรับ Production (เว็บจริง)
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false ); // ซ่อน Error จากผู้เยี่ยมชม
@ini_set( 'display_errors', 0 );
false เพื่อประสิทธิภาพที่ดีขึ้นPlugin ช่วยดู Error ได้ง่ายขึ้น
ถ้าไม่ถนัดอ่านไฟล์ debug.log โดยตรง ลอง Plugin เหล่านี้:
- Query Monitor — แสดง Error, database query, hook ที่รันบน admin bar
- WP Debugging — เปิด/ปิด Debug Mode ได้จาก Dashboard โดยไม่ต้องแก้ไฟล์
- Debug Bar — แถบเครื่องมือ debug แสดง PHP notices และ warnings
ตรวจสอบว่า Debug Mode ทำงานถูกต้อง
หลังแก้ไข wp-config.php แล้ว ตรวจสอบดังนี้:
# 1. ทดสอบว่าไฟล์ debug.log ถูกสร้างขึ้น
# เข้า File Manager → wp-content/ → ตรวจว่ามี debug.log
# 2. ดูขนาดไฟล์ debug.log ว่ามีข้อมูลหรือยัง
# (ถ้าขนาด 0 KB แสดงว่ายังไม่มี Error)
# 3. ตรวจสอบว่า WP_DEBUG_DISPLAY เป็น false
# โหลดเว็บหน้าแรก — ต้องไม่มี Error แสดงบนหน้าจอ
# 4. บังคับให้เกิด Error ทดสอบ (ใน browser URL bar)
https://yoursite.com/?debug_test=1
wp-content/ มีสิทธิ์ write (permission 755 หรือ 775)แก้ปัญหาที่พบบ่อย
Error: "Permission denied: Unable to create log file"
โฟลเดอร์ wp-content/ ไม่มีสิทธิ์เขียนไฟล์ แก้ได้โดยเปลี่ยน permission ใน File Manager คลิกขวาที่โฟลเดอร์ wp-content → Change Permissions → ตั้งเป็น 755
Error: "Headers already sent" หลังเปิด Debug
มักเกิดจากไฟล์ wp-config.php มีช่องว่างหรือ BOM ก่อน <?php ให้เปิดไฟล์ใน File Manager ตรวจว่าบรรทัดแรกสุดคือ <?php ไม่มีอักขระอื่นนำหน้า
Error: หน้าเว็บขาวทั้งหมดหลังแก้ wp-config.php
มีข้อผิดพลาด syntax ในไฟล์ที่แก้ไข เช่น ขาดเครื่องหมาย ; หรือ ' ไม่ครบ ให้เปิด File Manager แก้ไฟล์ wp-config.php คืนค่าเดิมก่อน แล้วลองใหม่อีกครั้ง
Error: debug.log ขนาดใหญ่มาก (หลาย GB)
เกิดจากเปิด Debug ทิ้งไว้นานบน production ให้ลบไฟล์ debug.log แล้วปิด WP_DEBUG กลับเป็น false ทันที
ไม่พบไฟล์ wp-config.php ใน public_html
WordPress บางการติดตั้งใช้โครงสร้างไดเรกทอรีต่างออกไป ลองมองหาใน public_html/wordpress/ หรือไดเรกทอรีย่อยอื่น ๆ
คำถามที่พบบ่อย (FAQ)
ต้องปิด Debug Mode หลังแก้ปัญหาเสร็จไหม?
ควรปิดครับ โดยเปลี่ยน WP_DEBUG กลับเป็น false เพราะการเปิด Debug ทิ้งไว้จะทำให้ไฟล์ debug.log มีขนาดใหญ่ขึ้นเรื่อย ๆ และอาจกินพื้นที่ Hosting จนเกิน inode limit
ผู้เยี่ยมชมเว็บจะเห็น Error ที่ debug.log บันทึกไว้ไหม?
ไม่ครับ ถ้าตั้ง WP_DEBUG_DISPLAY เป็น false Error จะถูกบันทึกลงไฟล์เท่านั้น ผู้เยี่ยมชมจะไม่เห็นอะไรเพิ่มเติมบนหน้าเว็บ
ใช้ Debug Mode แทน Error Log ของ cPanel ได้ไหม?
ได้ทั้งคู่ครับ Error Log ของ cPanel จะแสดง PHP Fatal Error ระดับ server ส่วน WordPress debug.log จะแสดง Error ระดับ application ที่ละเอียดกว่า เช่น Warning, Notice, และ Deprecated ที่ cPanel อาจไม่บันทึกไว้