KDIGI CMS
Tất cả bài viết

Hướng dẫn

Chuyển từ WordPress sang KDIGI CMS

Đội ngũ KDIGI2 phút đọc

Chuyển từ WordPress sang KDIGI CMS

Trước khi bắt đầu

KDIGI CMS có sẵn pipeline chuyển bất kỳ site WordPress nào sang một Site của KDIGI. Pipeline chạy lại được (idempotent), có --dry-run, và không ghi gì vào database cho tới khi bạn khóa dữ liệu đã duyệt.

Pipeline chuyển được: bài viết, trang, chuyên mục/thẻ/taxonomy tùy biến, media, menu, tác giả, bình luận, SEO của Yoast và RankMath, redirect từ permalink cũ và (tùy chọn) sản phẩm WooCommerce.

Pipeline không chuyển: theme, plugin, cấu hình form, tài khoản đăng nhập WordPress, và nội dung do page builder lưu ngoài post_content.

Bạn cần: một bản KDIGI CMS đã chạy (xem hướng dẫn triển khai), Node.js 20.9+, pnpm 10 và địa chỉ backend WordPress (REST API bật sẵn).

Luồng dữ liệu

WordPress → raw/ (bản sao nguồn) → staged/ (JSON sửa được) → cổng duyệt → Payload
  1. Archive: tải bản chụp nguồn qua WPGraphQL (nếu có) hoặc REST API chuẩn của WordPress.
  2. Normalize: HTML → Markdown, SEO Yoast/RankMath → một schema thống nhất.
  3. Review: bạn đọc và sửa staged/, chạy --gate lint cho sạch rồi --gate lock để ghi hash nội dung.
  4. Import: 8 giai đoạn ghi vào Payload: seed, taxonomy, content, media, seo, nav, comments, redirects.

Các bước

1. Chuẩn bị site đích. Tạo site trong admin KDIGI hoặc để giai đoạn seed tạo giúp. siteKey chỉ gồm a–z, 0–9 và -.

2. Tải archive và chuẩn hóa:

SITE=blog-cua-toi WP_URL=https://wp.example.com DOMAIN=www.example.com
mig() { node --env-file=.env --import tsx src/importers/run-wp-migration.ts \
  --site "$SITE" --wp-url "$WP_URL" --domain "$DOMAIN" "$@"; }
mig --archive

Nếu có Application Password của WordPress, đặt WP_AUTH_USER và WP_AUTH_PASSWORD để lấy cả media riêng tư và menu.

3. Rà soát và khóa:

mig --gate lint
mig --gate lock

Sửa staged/ sau khi khóa sẽ làm khóa mất hiệu lực, vì vậy hãy sửa xong rồi mới khóa.

4. Chạy thử, rồi nhập thật:

mig --from seed --to redirects --dry-run
mig --from seed --to redirects

Nếu DATABASE_URI không trỏ vào database local, pipeline luôn chạy pg_dump trước và dừng nếu bản sao lưu lỗi. Không có cờ để bỏ qua bước này.

Sau khi nhập

  • Mở site trong admin và kiểm tra bài viết, ảnh đại diện, menu và trường SEO.
  • Kiểm tra bảng Redirects: pipeline tạo 301 từ permalink WordPress cũ sang đường dẫn mới.
  • Trỏ frontend mới vào API của CMS và bật webhook revalidate (https://<domain>/api/cms/revalidate) để trang được làm mới khi nội dung đổi.
  • Chỉ đổi DNS sang site mới sau khi đã đối chiếu số lượng bài viết và các URL quan trọng.

Tài liệu đầy đủ, gồm quyết định theo từng cấu hình WordPress (Yoast hay RankMath, Gutenberg hay Elementor, WooCommerce, đa ngôn ngữ) và các lỗi đã biết: WordPress migration runbook và playbook.