Cách chuyển dữ liệu của custom post type và custom field từ plugin Pods sang plugin Meta Box

Bạn đang sử dụng plugin Pods nhưng muốn đổi sang plugin Meta Box mà vẫn muốn giữ lại các custom post type, custom field và các dữ liệu của chúng được tạo trước đó? Trong bài viết này, mình sẽ hướng dẫn các bạn chuyển tất cả dữ liệu của các custom post type và custom field từ plugin Pods sang Meta Box một cách cực kỳ đơn giản và nhanh chóng!

Cơ chế chuyển dữ liệu từ Pods sang Meta Box

Cả Pods và Meta Box đều sử dụng các hàm tiêu chuẩn của WordPress là get_post_meta()update_post_meta(). Đồng thời, hai plugin này có cách lưu trữ dữ liệu của custom field tương đồng với nhau: mỗi field được lưu ở một dòng trong bảng post meta với meta_key là ID của field và meta_value là giá trị của field. Vì vậy, khi chuyển từ Pods sang Meta Box, chúng ta không cần phải chuyển dữ liệu đã có, mà chỉ cần tạo các field tương ứng trong Meta Box với ID giống với các fields của Pods là được. Đối với các custom post type, chúng ta cũng sẽ làm tương tự như vậy!

Trong bài này, mình sẽ lấy một ví dụ về việc chuyển dữ liệu của một custom post type là Project và các custom field của nó từ Pods sang Meta Box.

Mình sẽ chỉ chuyển dữ liệu của các custom fields cho posts, nhưng cách làm này hoàn toàn có thể áp dụng tương tự được cả cho terms users!

Chuẩn bị

Mình sẽ sử dụng các extension sau của Meta Box bởi chúng có hỗ trợ UI giúp bạn thao tác nhanh và tiện hơn: 

  • MB Custom Post Types & Custom Taxonomies (miễn phí): dùng để tạo custom post type một cách đơn giản và đỡ tốn công sức. Plugin này có thể chạy độc lập mà không cần cài core plugin Meta Box. Nếu không muốn dùng plugin, bạn có thể thử Post Type Generator.
  • Meta Box Builder (trả phí): dùng để tạo custom fields một cách nhanh chóng và tiện lợi với giao diện người dùng ở ngay trong back end. Nếu muốn sử dụng extension này bạn cần cài core plugin Meta Box trước.

Nếu không muốn sử dụng extension trả phí Meta Box Builder, bạn có thể tự code để tạo custom field hoặc dùng công cụ Online Generator của Meta Box. Xem hướng dẫn chi tiết cách sử dụng Online Generator tại đây.

Bước 1: Lấy slug của post type và ID của custom field

Giả sử mình đã có sẵn một post type tên Project với slug là project (giá trị của cột Name) được tạo bằng plugin Pods như sau:

Lấy slug của post type và ID của custom field

Trong post type Project có chứa hai custom field với ID tương ứng là: project_nameproject_description.

Trong post type Project tạo bởi plugin Pods có chứa hai custom field

Bạn hãy ghi nhớ slug của post type và ID của các custom field để thực hiện chuyển dữ liệu ở các bước sau này nhé.

Sau đó, bạn hãy hủy kích hoạt plugin Pods. Sau khi hủy kích hoạt xong, dữ liệu của Pods không hề mất mà vẫn nằm trong cơ sở dữ liệu. Bạn chỉ cần dùng Meta Box để lấy các dữ liệu ra thôi.

Tiếp theo, hãy kích hoạt plugin Meta Box cũng như hai extension của nó là MB Custom Post Types & Custom Taxonomies và Meta Box Builder ở phần Chuẩn bị. Sau đó, hãy chuyển sang bước 2 để bắt đầu tạo post type.

Bước 2: Tạo custom post type bằng MB Custom Post Types & Custom Taxonomies

Để tạo custom post type, hãy truy cập vào Meta Box > Post Types và click Add New. Hãy điền các thông tin của post type mới, và lưu ý điền slug giống hệt như post type Project cũ mà bạn đã tạo bằng plugin Pods.

Tạo custom post type bằng MB Custom Post Types & Custom Taxonomies

Sau khi tạo xong, một post type mới là Project xuất hiện trên thanh Admin Menu trong Dashboard. Khi truy cập vào post type mới, bạn sẽ thấy đầy đủ danh sách các bài viết cũ của post type Project mà bạn đã tạo trước đây. Đặc biệt, khi chỉnh sửa bài viết của post type này, các thông tin như post title, post content, … vẫn được bảo lưu.

Tuy nhiên, bạn mới chỉ chuyển được nội dung các bài viết, vậy nên hãy chuyển sang bước 3 để  chuyển dữ liệu của các custom field.

Bước 3: Tạo custom field mới để chuyển dữ liệu về

Bạn cần truy cập vào Meta Box > Custom Fields > Add New để tạo các field mới tương tự như các field đã được tạo bởi Pods.

Do Pods và Meta Box hỗ trợ nhiều loại field khác nhau, nên mỗi khi thêm một field mới bằng Meta Box, bạn phải chọn loại field tương ứng như của Pods (Ví dụ: field type trong Pods là paragraph text thì trong Meta Box là text area). Điều này sẽ đảm bảo dữ liệu của các field được lưu trữ theo cách giống nhau.

Cũng giống như ở bước 2, bạn phải điền ID cho các field giống hệt với ID của custom field đã tạo bằng Pods. Các thông tin khác như Label bạn có thể điền khác đi. Tuy nhiên, để cho thông tin nhất quán, mình khuyên bạn vẫn nên điền y hệt.

 Tạo custom field mới để chuyển dữ liệu từ plugin Pods về plugin Meta Box

Sau khi đã tạo các custom fields với cùng ID giống với Pods, hãy vào chỉnh sửa một bài viết trong post type project vừa được tạo. Nếu các custom fields đã hiển thị giống như khi bạn dùng Pods và không có gì sai sót, bạn đã hoàn thành chuyển dữ liệu của custom post type và custom field tạo bởi Pods sang Meta Box rồi.

Lời cuối

Như vậy là chúng ta đã hoàn thành việc chuyển dữ liệu của một custom post type và các custom field của nó từ plugin Pods sang plugin Meta Box. Từ giờ trở đi, các bạn có thể làm việc cùng các custom field và custom post type một cách dễ dàng, linh hoạt, trực quan hơn với plugin Meta Box cùng các extension của nó.

Plugin Meta Box có rất nhiều ứng dụng vô cùng thú vị và hay ho được cập nhật thường xuyên và liên tục, các bạn có thể tham khảo thêm tại đây. Ngoài ra, nếu bạn có bất cứ câu hỏi nào liên quan tới việc sử dụng plugin Meta Box, hãy để lại bình luận tại bài viết này hoặc tham gia group Facebook Meta Box Users nhé!

Để lại bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *