สำหรับผู้ดูแลระบบหรือนักพัฒนาที่ต้องดูแล WordPress บนเซิร์ฟเวอร์ การคลิกผ่านหน้า WordPress Dashboard (GUI) อาจไม่ใช่ทางเลือกที่มีประสิทธิภาพเสมอไป โดยเฉพาะการดีบักปัญหาเซิร์ฟเวอร์หน้าขาว, การทำ Automation สคริปต์, การย้ายโดเมน หรือการจัดการเว็บไซต์จำนวนมาก
WP-CLI (WordPress Command Line Interface) คือเครื่องมือคอมมานด์ไลน์มาตรฐานที่ออกแบบมาเพื่อจัดการระบบ WordPress ได้อย่างเบ็ดเสร็จโดยไม่ต้องเปิดเบราว์เซอร์ ช่วยประหยัดเวลา ลดภาระเครื่อง และแก้ปัญหาฉุกเฉินได้ตรงจุด
วินิจฉัยและกู้ภัยระบบ (System Health & Disaster Recovery)
เมื่อระบบเกิดข้อผิดพลาด เช่น เข้าหลังบ้านไม่ได้ หรือหน้าเว็บค้าง คำสั่งกลุ่มนี้จะช่วยประเมินสถานะได้เร็วที่สุด
- ตรวจสอบความพร้อมของระบบและการเชื่อมต่อฐานข้อมูล
wp core is-installed
หากคืนค่าสำเร็จ แสดงว่าโครงสร้างwp-config.phpและการต่อ Database ยังสมบูรณ์ดี แต่ถ้าพบข้อผิดพลาด จะชี้เป้าทันทีว่าปัญหาเกิดจากฐานข้อมูลหรือคอนฟิก - ปิดปลั๊กอินทั้งหมดเมื่อเจอปัญหาจอขาว (White Screen of Death)
wp plugin deactivate --all
ช่วยตัดปัญหาเรื่องปลั๊กอินชนกันจนหลังบ้านพัง เพื่อให้แอดมินล็อกอินกลับเข้าไปตรวจสอบได้ - ตรวจสอบความสมบูรณ์ของไฟล์ Core (Integrity Check)
wp core verify-checksums
คำสั่งนี้จะเทียบ md5 hashes ของไฟล์ระบบปัจจุบันกับไฟล์แท้จาก WordPress.org ช่วยตรวจสอบทันทีว่ามีไฟล์ระบบถูกแก้ไข แปลกปลอม หรือมี Backdoor ฝังอยู่หรือไม่ - รีเฟรช Permalink เมื่อหน้าบทความขึ้น 404
wp rewrite flush
สร้างตรรกะ Rewrite Rules ของ Web Server ใหม่ เหมาะสำหรับใช้งานหลังแก้โครงสร้าง Slug หรือย้ายระบบ
ดูแลจัดการฐานข้อมูล (Database Administration)
จัดการ MySQL/MariaDB ได้จากหน้าต่าง Terminal โดยตรง ไม่จำเป็นต้องติดตั้ง phpMyAdmin ให้เปลืองทรัพยากรหรือเปิดช่องโหว่ความปลอดภัย
- สำรองและกู้คืนฐานข้อมูลความเร็วสูง
# สำรองข้อมูลทั้งก้อนออกมาเป็นไฟล์ .sqlwp db export backup-production.sql# กู้คืนข้อมูลกลับเข้าไปwp db import backup-production.sql - Optimize และ Check ตาราง
wp db check wp db optimize - สืบค้นและรัน SQL Statement ตรง
wp db query "SELECT ID, post_title FROM wp_posts WHERE post_status='publish' LIMIT 5;"
ย้ายโดเมนอย่างปลอดภัยด้วย Search-Replace
การเปลี่ยนชื่อเว็บหรือสลับจาก HTTP เป็น HTTPS มักทำให้ Widget หาย หรือ Theme พัง เพราะข้อมูลในตาราง wp_options และ postmeta ของ WordPress ส่วนใหญ่เก็บในรูปแบบ Serialized PHP String (หากใช้ sed หรือ SQL REPLACE ธรรมดา ความยาวตัวอักษรจะไม่ตรงและทำให้ข้อมูลพังทันที)
WP-CLI มีคำสั่งจัดการเรื่องนี้ให้โดยเฉพาะ
- ทดลองค้นหาและแทนที่แบบจำลอง (Dry Run)
wp search-replace 'http://old-domain.com' 'https://new-domain.com' --dry-run
คำสั่งจะไม่แก้ข้อมูลจริง แต่จะรายงานให้ทราบว่าพบข้อความกี่แถว ในตารางใดบ้าง - แทนที่ข้อมูลจริงพร้อมปรับ Serialized Data
wp search-replace 'http://old-domain.com' 'https://new-domain.com'
จัดการสิทธิ์และการเชื่อมต่อ API (User & Authentication)
คำสั่งกลุ่มนี้ช่วยอำนวยความสะดวกอย่างมากเวลาพัฒนา API หรือทำ Headless/Automation Script
- ตรวจสอบรายชื่อผู้ใช้งานและระดับสิทธิ์
wp user list --fields=ID,user_login,user_email,roles - สร้างผู้ดูแลระบบฉุกเฉิน (Emergency Admin)
wp user create devadmin [email protected] --role=administrator --user_pass="SuperSecretKey!" - สร้าง Application Password สำหรับ REST API
กรณีเขียนสคริปต์ภายนอก (เช่น Python, Node.js, Shell Script) มายิง REST API สามารถสร้าง Application Password ได้ทันทีโดยไม่ต้องเข้า Dashboardwp user application-password create <username> "AutomationScript"
ระบบจะตอบกลับเป็นชุดรหัสผ่าน 24 ตัวอักษรพร้อมใช้งาน
เคลียร์แคชและเพิ่มประสิทธิภาพ (Performance & Transients)
- ล้าง Object Cache ของ WordPress
wp cache flush - ลบ Transients ขยะที่สะสมในฐานข้อมูล
wp transient delete --all
ช่วยลดขนาดตารางwp_optionsให้เล็กลง ลดเวลา Query ของทั้งเว็บไซต์
สรุปคำแนะนำในการใช้งาน
- การรันในฐานะ root
หากรันคำสั่งภายใต้ผู้ใช้ Root บนเซิร์ฟเวอร์ ให้ต่อท้ายด้วยแฟลก--allow-rootเสมอ (เช่นwp cache flush --allow-root
) เพื่อยืนยันสิทธิ์ - กำหนด Path เจาะจง
หากไม่อยู่ในไดเรกทอรีของเว็บ สามารถชี้ path ได้ตรงๆ ด้วย--path=/path/to/wordpress
การใช้งาน WP-CLI ให้เชี่ยวชาญ ไม่เพียงแต่ช่วยประหยัดเวลาการทำงานซ้ำๆ แต่ยังเป็นเครื่องมือสำคัญสำหรับการทำ CI/CD Deployment และการเขียน Automation Script ดูแลเว็บไซต์ในระยะยาวอีกด้วย