Cách chuyển CodeIgniter sang WordPress giữ nguyên Link SEO
Rất nhiều doanh nghiệp vừa và nhỏ ở VN xưa nay được KHÁI NIỆM vào ĐẦU là WordPress là Mã Nguồn Mở, là không an toàn, bị hack và kém bảo mật bla bla.
Và tất nhiên đều được khuyên dùng CodeIgniter hay Laravel hay đại loại là một CODE TAY nào đó. Nhưng tất cả bất cập sẽ xảy ra khi các bạn vận hành hoặc quá trình vận hành sẽ:
1- Coder khi code cho bạn không còn support
2- Thời gian Google thay đổi thuật toán và cần tối ưu SEO hay thêm các Code nhất là các Code phục vụ cho việc SEO
3- Tốc độ và độ tối ưu Web ngày càng không phù hợp
Do đó nhu cầu chuyển sang WordPress một mã nguồn đáp ứng cao nhất cho SEO hiện nay là rất cần thiết.Vấn đề đặt ra là: Làm sao để chuyển hết tất cả sang WordPress mà không làm mất nội dung cũ, hình ảnh cũ và không làm thay đổi URL cũ (Link cũ) để không làm ảnh hưởng đến SEO.
Phân tích tình huống
Đa số các bạn dùng các Frame như CodeIgniter sẽ đặt các bảng dữ liệu đại loại là
news + danhmuc
Trong đó thông thường các trường sử dụng chính sẽ là
news ID, news name (title), news alias, news catID, news views count, news long description, news short description ..v.v.
Để làm triệt để chuyển đổi thì khá phức tạp tôi xin nêu một bài toán đơn giản để anh em có thể dễ dàng làm được.
Trước tiên anh em tạo 1 folder mới trên host ví dụ https://btdvina.com/demo/ rồi upload và cài đặt 1 bản WordPress mới trên folder này chú ý là tạo một database riêng. Cũng nhắc nhở các bạn tạo Backup cho toàn Host trước.
Tiếp theo các bạn vào phpMyADMin hay đại loại gì đó theo quản lý host của bạn và export database của web chính (https://btdvina.com/) ra rồi import nó vào database của WordPress mới (cũng nên lưu ý đến prefix của DB WordPress lúc cài sao cho đỡ trùng – mặc định là wp_)
Tiếp theo ta sẽ tạo 1 file trên ngay chính folder WordPress đã cài ví dụ lamvt.script.php (https://btdvina.com/demo/lamvt.script.php) rồi theo như các dòng lệnh sau
1- Kết nối cơ sở dữ liệu của WordPress và sử dụng thư viện lệnh của WordPress băng việc
require_once “wp-load.php”;
global $wpdb; // khai báo để connect vào cơ sở dữ liệu
$sql = “SELECT title, content, description, alias, category_id FROM news”; // lựa chọn câu lệnh truy vấn vào cơ sở dữ liệu lấy các trường mà mình cần lấy
$rows = $wpdb->get_results( $sql, ARRAY_A ); //lấy các trường cơ sở dữ liệu này
Thực hiện trong vòng lặp để đẩy dữ liệu vào WordPress
if($rows){
foreach ($rows as $row => $value) {
$category = $wpdb->get_row( $wpdb->prepare( ‘SELECT * FROM news_category WHERE ‘ . $value[“category_id”] . ‘ = id’ ) ); Lấy danh mục tin tức
$cat_name =’Lamvt(dot)VN’;
if($category){
$cat_name = $category->name;
}else{
$cat_name = $value[“category_id”];
}
Chuẩn bị cho New Post
$new_post = array(
‘post_title’ => wp_strip_all_tags($value[“title”]),
‘post_content’ => html_entity_decode($value[“content”]),
‘post_excerpt’ => html_entity_decode($value[“description”]),
‘post_status’ => ‘publish’,
‘post_date’ => date(‘Y-m-d H:i:s’),
‘post_author’ => ‘1’,
‘post_type’ => ‘post’,
‘post_name’ => wp_strip_all_tags($value[“alias”])
);
// Thực hiện chèn dữ liệu
$post_id = wp_insert_post($new_post);
wp_set_object_terms( $post_id, $cat_name, ‘category’ );
// update_post_meta( $post_id, ‘post_views’, $value[‘view_num’] ); Nếu các bạn có post_views thì có thể thực hiện thêm các lệnh update meta post
}
}else{
echo ‘Kiểm tra lại dữ liệu hoặc hỏi LAMVT’;
}
Sau khi các bạn đã chuyển đổi thành công việc còn lại là COPY thư mục Upload (images) sang để vào vị trí tương ứng với nó là được.
Tôi đã chuyển đổi thành công Website: https://btdvina.com/ từ CodeIgniter sang WordPress mà vẫn giữ nguyên Link SEO, đảm bảo không thiếu bài viết và danh mục cũng như sản phẩm.
Chúc các bạn thành công.
Mọi thắc mắc vui lòng Inbox Lamvt hoặc liên hệ website: Lamvt(.)VN