การย้าย domain และ host ของ wordpress

เมื่อถึงเวลาย้ายบ้านของเหล่าสาวก wordpress บางคนอาจจะกลัวว่ามันทำยากครับ
แต่จริงๆแล้วง่ายมากเลย ซึ่งจะแบ่งเป็น 2 แบบ ย้าย host และ ย้าย domain

การย้าย Host

ก่อนอื่นก็เอา source code ทั้งหมดและ db ทั้งหมดเข้า host ใหม่ได้เลย แต่มีสิ่งที่ต้องระวังอย่างเดียวคือ
permission ของ folder ครับสามารถข้ามไปดูได้ที่ ข้อ 4.1 Permission ได้เลยครับ

การย้าย Domain

หัวข้อนี้จะยุ่งยากเล็กน้อยครับ โดยมีหลักการง่ายๆคือการ replace (แทนที่) ชื่อโดเมนเก่าด้วยโดเมนใหม่
โดยผมจะสมมุติว่าผมจะย้ายจาก jojoee.com ไปเป็น jojoeenew.com นะครับ เอาละครับมาเริ่มกันเลย

1. wp-config.php

ให้เปลี่ยน config ต่างๆใน ไฟล์ wp-config โดย default แล้วจะเปลี่ยนแค่ส่วนของ database ครับ

// wp-config.php
define( 'DB_NAME' , 'database_name' );
define( 'DB_USER' , 'database_user' );
define( 'DB_PASSWORD' , 'database_password' );
define( 'DB_HOST' , 'localhost' );

2. Theme

เปลี่ยน domain name ที่ได้ hardcode ไว้ใน theme ครับ
theme ส่วนใหญ่จะไม่มีการ hardcode โดเมนไว้ใน code แต่ยังไงให้ลองตรวจสอบดูครับ
ยิ่งถ้าเป็น theme ที่พัฒนาเองหรือ customize มาอาจจะมีการ hardcode อยู่

ให้ลอง search จาก theme เอาครับ เช่น theme ของผมชือว่า twentyfour ก็เข้า path นี้ \wp-content\themes\twentyfour\
ผมก็ search คำว่า jojoee.com แล้วก็แทนที่ด้วย jojoeenew.com ครับ

3. Database

ให้ export ทั้ง database มาเลยครับเปิดไฟล์แล้วแทนที่เหมือนเดิมคือ search คำว่า jojoee.com แล้วก็แทนที่ด้วย jojoeenew.com

4. Others

ส่วนนี้จะเป็นส่วนที่ควรระวังหลังจากการย้าย domain หรือย้าย host มาครับ

4.1 Permission

ระวังเรื่อง permission ของ folder ด้วยนะครับในการย้าย host โดยปกติแล้วจะเป็นโฟลเดอร์ /wp-content และ /wp-content/uploads
(ปล. นอกจากนี้ขึ้นอยู่กับ plugin แล้วครับ เช่น ถ้า ใช้ wp super cache ต้องให้ permission ที่ /wp-content/cache ด้วยครับ

4.2 Plugins

อันนี้เป็น case by case ครับซึ่งบาง plugin จะทำงานผิดพลาด (บางครั้งผมก็ยังไม่ทราบสาเหตุที่ตัว plugin เองทำงานผิดพลาดครับ)
เช่น ตอนนั้นผมใช้ contact form 7 แต่มันทำงานไม่ได้หลังจากผมย้าย host และ domain มา, ผมก็เข้าไป กด update ทีนึง มันก็หาย ครับ