PlusMagi's Blog By Pitt Phunsanit WordPress คู่มือ WP-CLI ฉบับ Developer & SysAdmin: จัดการ WordPress ระดับ Pro ผ่าน Terminal

คู่มือ WP-CLI ฉบับ Developer & SysAdmin: จัดการ WordPress ระดับ Pro ผ่าน Terminal

สำหรับผู้ดูแลระบบหรือนักพัฒนาที่ต้องดูแล 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 ให้เปลืองทรัพยากรหรือเปิดช่องโหว่ความปลอดภัย

  • สำรองและกู้คืนฐานข้อมูลความเร็วสูง
    # สำรองข้อมูลทั้งก้อนออกมาเป็นไฟล์ .sql
    wp 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 ได้ทันทีโดยไม่ต้องเข้า Dashboard
    wp 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 ดูแลเว็บไซต์ในระยะยาวอีกด้วย