ถ้ามี wordpress แล้วต้องการ clone โดยเก็บ config ต่าง ๆ ไว้เหมือนเดิม แต่เปลี่ยนแค่เนื้อหาข้างใน วิธีที่เร็วที่สุดคือ
WordPress Site
- คัดลอก database mysql / mariadb ออกมาทั้งก้อน เปลี่ยนชื่อใหม่
- set user, permission
- คัดลอก folder WordPress ออกมาเป็นเป็นอีก folder เปลี่ยนชื่อใหม่
- แก้ wp-config.php ให้ถูกต้อง
- database, username, password, table prefix
- แก้ Authentication unique keys and salts ให้ครบ
- แก้ wp-config.php ให้ถูกต้อง
- คัดลอง nginx site / apache site มาใหม่
- อย่าลืมแก้ path ให้ถูก
- ทำ ssl ใหม่
🛑 ตารางที่ต้อง “เก็บไว้” (หัวใจหลักของระบบ)
ตารางกลุ่มนี้ทำหน้าที่เก็บข้อมูล Config และ User
| ตาราง | ความสำคัญ | ผลกระทบถ้าหาย |
wp_options | สูงสุด! | เก็บค่า siteurl, home, blogname, รวมถึงการตั้งค่าของปลั๊กอินทั้งหมด ถ้าลบ = เว็บพัง ต้องลงใหม่หมด |
wp_users | สูงสุด! | เก็บรายชื่อ User และรหัสผ่าน ถ้าลบ = พี่ล็อกอินเข้าเว็บไม่ได้อีกเลย |
wp_usermeta | สูง | เก็บสิทธิ์ (Capabilities) ของ Admin (ถ้าลบ = พี่จะกลายเป็นแค่ผู้เยี่ยมชมและเข้าหน้า admin ไม่ได้) |
wp_terms | สูง | เก็บชื่อหมวดหมู่ (Categories/Tags) ถ้าลบ = ระบบหมวดหมู่ในฐานข้อมูลจะว่างเปล่า |
wp_term_taxonomy | สูง | ผูกโยงว่า Term ไหนคือ Category หรือ Tag ถ้าลบ = หมวดหมู่พัง |
💡 ถ้าเป้าหมายคือ “ล้างแค่เนื้อหา แต่เก็บ Config ไว้”
ถ้าอยากล้างโพสต์, หน้าเพจ, และแคชขยะ โดยที่ Config, เมนูหลัก, รายชื่อ User และการตั้งค่าปลั๊กอินยังอยู่ครบ ให้ใช้สคริปต์นี้แทนครับ (นี่คือสคริปต์ที่ปลอดภัยสำหรับ Developer)
-- 1. ลบโพสต์และหน้าทั้งหมด (แต่โครงสร้างตารางยังอยู่)
DELETE FROM `wp_posts`;
DELETE FROM `wp_postmeta`;
-- 2. ลบความสัมพันธ์ของหมวดหมู่และแท็กที่ผูกกับโพสต์
DELETE FROM `wp_term_relationships`;
-- 3. ล้างแคชและ Log ต่างๆ (ถ้ามี)
-- ล้างตารางแคชของปลั๊กอิน (ถ้าพี่ใช้ปลั๊กอิน AMP, สถิติ, หรือแคชอื่นๆ)
-- ตรวจสอบชื่อตารางที่ขึ้นต้นด้วย wp_... แล้ว TRUNCATE เฉพาะตาราง log/cache
TRUNCATE TABLE `wp_commentmeta`;
TRUNCATE TABLE `wp_comments`;
-- 4. จัดการเรื่อง ID ให้กลับมาเริ่มที่ 1 เพื่อความสะอาด
ALTER TABLE `wp_posts` AUTO_INCREMENT = 1;
ALTER TABLE `wp_comments` AUTO_INCREMENT = 1;
replace
replace ค่าต่าง ๆ อย่าง url, username, password
⚠️ คำแนะนำ
- แนะนำให้ “Export เฉพาะตาราง” ออกมาเป็นไฟล์ .sql แยกไว้ก่อน แล้วค่อยสั่งกวาดล้างทั้ง Database แล้วค่อย Import ตาราง config กลับเข้าไปครับ วิธีนี้จะชัวร์ที่สุดครับ
- ถ้าต้องการรีเซ็ตแค่เนื้อหา:
การใช้คำสั่งDELETE FROM(แบบไม่มีWHERE) จะปลอดภัยกว่าTRUNCATEในแง่ที่ว่าโครงสร้างดัชนีบางอย่างของ InnoDB จะยังถูกรักษาไว้ (ถ้ามี Foreign Key Constraints) แต่ถ้ามั่นใจว่าไม่มี Constraints ผูกกันมั่วซั้วTRUNCATEก็ทำได้ครับ - สิ่งที่ต้องเช็ค: หลังจากสั่งลบพวกนี้แล้ว ให้ไปที่ “Settings > Permalinks” ในหน้า Admin แล้วกดปุ่ม “Save Changes” 1 ครั้งครับ เพื่อให้ WordPress มันสร้าง Rewrite Rules ขึ้นมาใหม่ ให้สอดคล้องกับโครงสร้างที่หายไป (ป้องกันหน้า 404)
อ่านเพิ่มเติม