Di chuyển website wordpress sang hosting khác
Khi tạo xong xuôi website trên localhost cả nhập dữ liệu đầy đủ đã đến lúc bạn đưa website lên host. Website bao gồm phần code và database trong đó Quan trọng nhất là di chuyển dữ liệu.
Backup Code và Attachments.
1. Download toàn bộ code wordpress gồm có các file hệ thống, plugins, theme và thư mục uploads chứa các tài nguyên ảnh, ..các attachment khác.
2. Upload các files lên host sử dụng trình tải file FTP như CuteFTP, WinSCP...
Trong đó có:
- Files hệ thống của wordpress : wp-content, wp-admin, các files ngoài root, wp-includes. Nếu bạn di chuyển site từ multisite thì tạm thời trừ thư mục wp-content/uploads.
Phần nội dung này chúng ta sẽ chỉ lấy những attachments được đăng bởi website bạn đang muốn di chuyển.
Lấy tất cả các thư mục trong folder của site bạn muốn di chuyển, ví dụ ở hình trên site có ID=21.
Backup dữ liệu.
Cách 1: Sử dụng tính năng Export/import của wordpress:
Backup dữ liệu của website bằng cách đăng nhập vào quản trị wordpress, truy cập công cụ Tools->export.
Lưu ý:
-
Nếu website có nhiều kiểu dữ liệu, bạn xuất ra từng files xml cho mỗi kiểu dữ liệu.
-
Nếu file đính kèm trong post/page lên tới hàng trăm file ảnh,..thì plugin wordpress importer không thể nào up hết toàn bộ ảnh.
Giải pháp:
+ tăng thời gian thực thi PHP.
+ Cách khôn ngoan hơn là up database của nội dung bài viết trước và các files attachments (ie:jpg, gif,zip,rar,…) sau. Đừng check tùy chọn “Download and import file attachments” trong bước import.
Cập nhật domain mới và đường dẫn Ảnh:
- Mở mục quản trị database phpmyadmin của web trên trình duyệt và sửa lại cho đúng với domain. Vì bỏ qua bước import attachments nên vẫn lưu domain cũ.
Thay địa chỉ domain cũ bằng domain hiện tại bằng cách sử dụng câu lệnh SQL. Ví dụ:
update wp_posts set guid=REPLACE(guid,"http://demo.hoangweb.com/baoholaodong/","http://baohohaan.com/") where post_type="post"
|
Ví dụ khác cho multisite, địa chỉ attachment có dạng:
http://demo.hoangweb.com/baoholaodong/wp-content/uploads/sites/21/2014/09/4024853qua_n_a_11.jpg
Trong đó 21 là ID của site.
update wp_posts
set post_content=REPLACE(post_content,
"http://demo.hoangweb.com/baoholaodong/wp-content/uploads/sites/21/",
"http://baohohaan.com/wp-content/uploads/") where post_type="post"
|
Các bảng và trường cần thay đổi giá trị:
Table
|
Column
|
wp_posts
|
-
post_content (tìm thay thế attachment URL)
-
guid (tìm thay thế địa chỉ domain trang chủ/base url)
|
wp_postmeta
|
-
meta_value (tìm thay thế base url. Kết quả tìm thấy giá trị meta_key=’_menu_item_url’).
|
wp_options
|
|
Lỗi không tìm thấy ảnh trong Media:
Vào trang quản lý Media thì vẫn không thấy các attachments xuất hiện, việc sửa lại domain dễ hiểu là không có tác dụng thiết lập dữ liệu attachments.
Lưu tâm:
+ Các file attachment được khai báo trong bảng wp_postmeta có meta_key='_wp_attached_file'.
+ Thông tin của các attachments xác định bởi meta_key='_wp_attachment_metadata' và giá trị là mảng đã được serialize lưu cùng bảng wp_postmeta.
Note: các file attachment không pải ảnh sẽ không có thuộc tính meta_key trên.
+ Thumbnail gắn vào post của attachment thiết lập bởi meta_key='_thumbnail_id'
(trường meta_value thể hiển field wp_posts.ID của attachment nhưng không tìm thấy ở wp_posts).
=> Công việc phải làm:
- Tạo attachment: Tổng số có 3 trường tạo giúp tạo attachment và post thumbnail cho post, chúng ta phải thêm 2 trường ‘_wp_attached_file‘ và ‘_wp_attachment_metadata‘ chèn record vào bảng wp_postmeta. (Vì meta_key='_thumbnail_id' đã có trong quá trình import wordpress).
---->meta_value của meta_key=’_wp_attachment_metadata’ thì lấy giá trị ở đâu?
---->Làm sao điền giá trị của meta_key='_wp_attached_file' ?
File export được export từ wordpress chứa đầy đủ thông số của attachment.
Giải thích:
-
Mỗi record trong wp_posts thể hiện bởi tag item. Sau mỗi tag item nhận dạng là ‘attachment’ bởi element tag wp:post_type
giá trị ‘_wp_attached_file’ là path đến file. ie: 2014/09/3651922quan_ao_vai_pawngzim_han_quoc1.jpg
- Tạo post thumbnail: Chèn thêm record vào bảng wp_posts với post_type=attachment.
Cách 2: Cách đơn giản hơn chúng ta export & import trực tiếp từ phpmyadmin.
Sau đó sửa lại tên domain và đường dẫn base, attachment cho phù hợp làm giống cách 1.
Chú ý: Sau khi save thành file .sql từ localhost. Mở file .sql và xóa chuỗi lệnh tạo database. Ví dụ:
--
-- Database: `wordpress`
--
CREATE DATABASE IF NOT EXISTS `wordpress` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
USE `wordpress`;
|