So sánh, đánh giá chi tiết hai plugin tạo custom field: Meta Box và ACF

Custom fields là một phần quan trọng trong WordPress, vậy nên việc lựa chọn một plugin tốt cho custom fields sẽ giúp bạn thực hiện công việc nhanh hơn và tiết kiệm nhiều công sức hơn. Trong số các plugin nổi bật về custom field cho WordPress, hẳn bạn sẽ tìm thấy Meta Box và Advanced Custom Fields (ACF) là 2 plugin phổ biến và được sử dụng nhiều nhất.

Meta Box và ACF đều có những thế mạnh riêng, vậy nên bạn sẽ thấy khá khó để chọn ra được một plugin ưng ý cho bản thân. Để có cái nhìn khách quan và đánh giá chi tiết nhất về Meta Box và ACF, mời bạn tham khảo bài so sánh hai plugin này của chúng mình. Bài viết sẽ đánh giá về cách làm quen, giao diện sử dụng, tính năng, giá cả, các điểm mạnh, điểm yếu của cả hai, từ đó giúp bạn dễ dàng chọn ra plugin phù hợp.

Giới thiệu chung

Meta Box là plugin về custom fields cho WordPress với hơn 500,000 người dùng cho bản miễn phí trên wordpress.org. Đối tượng mà Meta Box hướng đến chủ yếu là developers, vậy nên Meta Box cung cấp một bộ công cụ rất đầy đủ để xử lý dữ liệu trong WordPress, bao gồm custom fields, custom table, settings page, front end forms, …

Advanced Custom Fields (ACF) cũng là một plugin freemium về custom fields với hơn một triệu lượt kích hoạt trên wordpress.org. ACF cũng tập trung vào đối tượng developers và cũng có khá đủ các tính năng mà developer cần.

Cả hai plugin đều tập trung vào các dev, những người xây dựng website và viết plugin. Ngoài ra, cả hai đều có thời gian phát triển khá lâu trên 10 năm và đã chứng minh được giá trị của mình với cộng đồng.

Để cung cấp cái nhìn đầy đủ nhất về Meta Box và ACF, mình sẽ đánh giá phiên bản đầy đủ nhất của cả hai plugin đó là bản Developer Bundle hoặc Lifetime Bundle của Meta Box và bản Pro của ACF.

Cài đặt và làm quen

Plugin Meta Box

Khi mua bản Developer Bundle hay Lifetime Bundle của Meta Box, bạn sẽ sở hữu một bản mở rộng của Meta Box tên là Meta Box AIO. Meta Box AIO chứa tất cả các extensions trong một gói duy nhất để giúp bạn dễ dàng quản lý, tắt bật các extension của Meta Box một cách nhanh chóng. Sau khi cài Meta Box AIO, bạn sẽ thấy một menu phía bên trái, trong đó có các mục mà Meta Box hỗ trợ tạo như hình dưới:

Giao diện menu của plugin Meta Box

Và từ menu này, bạn sẽ thấy các tính năng Meta Box hỗ trợ tạo như custom post type, custom taxonomy, custom field, view, … Bạn chỉ cần vào các mục tương ứng để tạo các tính năng cần thiết một cách khá dễ dàng.

Lưu ý, kể cả khi mua bản premium, bạn vẫn phải cài bản free của Meta Box nhé. Khi mới cài đặt bản free của Meta Box, bạn sẽ thấy một trang giới thiệu về plugin, trong đó có giới thiệu về tính năng của plugin và các bước bắt đầu như sau: nhé. Khi mới cài đặt bản free của Meta Box, bạn sẽ thấy một trang giới thiệu về plugin, trong đó có giới thiệu về tính năng của plugin và các bước bắt đầu như sau:

Trang giới thiệu về plugin Meta Box

Các bạn có thể sẽ hơi bất ngờ khi không tìm thấy trang cấu hình nếu chỉ cài bản free của Meta Box. Lý do là bản free của Meta Box đóng vai trò như 1 thư viện, trong đó, các việc cấu hình được thực hiện qua các đoạn code snippet mà bạn chèn vào trong theme hay plugin của bạn. Đây là một cách làm rất riêng của Meta Box nhằm tập trung vào developers. Lợi ích của cách làm này là giúp tăng hiệu suất của website, giúp Meta Box tích hợp dễ dàng hơn vào các plugin khác và tăng tính linh hoạt của plugin này.

Plugin Advanced Custom Fields

Ngược lại với Meta Box, ACF Pro chạy độc lập và không cần bạn cài bản free. Sau khi cài đặt ACF Pro, bạn sẽ thấy 1 menu như sau:

Menu làm việc với custom field của plugin ACF

Bạn cũng chỉ cần truy cập vào các phần trong menu này để tạo các field khá dễ dàng. Tuy nhiên, không như Meta Box, bạn sẽ không thấy phần tạo custom post types hay custom taxonomies.

Kết luận

Có thể thấy rằng Meta Box và ACF có các cách tiếp cận với người dùng khác nhau, do đó trải nghiệm người dùng sẽ không giống nhau. Tuy nhiên, về mức độ đơn giản, nhất là cho người mới bắt đầu thì ACF vượt trội hơn.

Giao diện

Plugin Meta Box

Khi tìm kiếm và đọc những bài đánh giá về plugin Meta Box, bạn sẽ thấy một đánh giá khá phổ biến đó là Meta Box không có UI. Nhưng quan điểm này là KHÔNG ĐÚNG nhé. Điều này chỉ đúng với bản free của Meta Box thôi. Còn bản premium không những có UI mà còn có UI cho tất cả các phần tạo custom post type, custom taxonomy, custom field và view (phần hiển thị các field ra ngoài front end).

Dưới đây là UI của phần tạo custom post type:

UI để tạo custom post type của Meta Box

Còn đây là hình chụp UI của phần tạo custom field:

UI để tạo custom field của plugin Meta Box

Giao diện sử dụng của Meta Box có một ưu điểm rất lớn, đó là nó rất quen thuộc và giống với các phần giao diện khác của WordPress. Vì thế, bạn sẽ không cảm thấy khó thao tác hay lạ lẫm khi làm việc với các UI này.

Một ưu điểm nữa, đó là giao diện của Meta Box giúp cấu hình tất cả mọi thứ bạn cần cho loại nội dung bạn cần.

Tuy nhiên, cũng do Meta Box có quá nhiều tính năng nên phần giao diện tạo custom field vẫn chưa thể hiện được hết sức mạnh của plugin này. Ngoài ra một số phần của Meta Box chưa hỗ trợ UI như settings pages hay relationships. Team Meta Box hiện đang có kế hoạch để update phần UI này sao cho thân thiện hơn và hỗ trợ đầy đủ hơn các tính năng của Meta Box. Chúng ta cùng chờ xem nhé.

Plugin ACF

ACF chỉ có một phần UI duy nhất cho phần tạo custom field như sau:

ACF chỉ có một UI duy nhất để tạo custom field

Theo nhận xét của chúng mình, giao diện của ACF không giống lắm với giao diện của WordPress như Meta Box. Nhưng nó lại có một ưu điểm đó là khả năng thể hiện được toàn bộ tính năng của ACF, vậy nên bạn có thể dùng nó để tùy chọn mọi thứ trong plugin này

Kết luận

Xét về tính dễ dùng và thân thiện thì cả 2 plugin đều thân thiện với người dùng và cho phép bạn tùy chỉnh các cấu hình dễ dàng.

Ngoài việc giao diện của Meta Box quen thuộc và giống với giao diện của WordPress hơn ACF, có một số khác biệt về mặt giao diện giữa hai plugin như:

  • Meta Box đưa danh sách các trường có sẵn ra một khu vực riêng để chọn, còn ACF sẽ cho chọn loại trường và tuỳ thuộc vào đó hiển thị các setting tương ứng.
  • Meta tách phần settings ra một tab riêng, còn ACF để chung trên một màn hình.

Hai khác biệt này không lớn và không quá quan trọng, tùy vào cảm nhận và sở thích cá nhân của bạn thôi.

Lưu ý rằng, Meta Box có hỗ trợ UI thêm cho các tính năng khác như custom post types, custom taxonomies, views mà ACF không có. Tuy nhiên, trình UI của Meta Box đang chưa thể hiện được hết sức mạnh của chính plugin này.

Tính năng

Khi đánh giá plugin, hẳn bạn sẽ quan tâm đến phần tính năng nhiều nhất đúng không? Vậy nên mình sẽ tập trung vào phần này và chia nhỏ ra làm nhiều mục để giúp bạn hiểu kỹ hơn.

Tạo custom post type và custom taxonomy

Tính năng này hiện chỉ có ở Meta Box, chưa được hỗ trợ bởi ACF.

Nếu dùng ACF, bạn phải dùng kèm ACF với một plugin khác như CPT UI để tạo custom post type và custom taxonomy.

Nếu bạn dùng Meta Box, bạn có thể tạo custom post types và custom taxonomies thông qua UI rất tiện lợi và dễ dàng.

Tạo custom post type và custom taxonomy trong WordPress bằng UI của plugin Meta Box

Các đối tượng được hỗ trợ

Cả 2 plugin là đều cho phép tạo custom fields cho các đối tượng sau trong WordPress:

  • Post (bao gồm post, page, attachments và tất cả các loại post types)
  • Taxonomy term
  • User
  • Trang settings
  • Comment
  • Gutenberg block: tạo blocks cho Gutenberg
  • Front-end form

Trong các loại dữ liệu được hỗ trợ kể trên, thì phần dành cho post, term, user, comment và Gutenberg block của Meta Box và ACF khá giống nhau.

Ngoài ra, ACF còn có thêm hỗ trợ cho widget và menu/menu item mà Meta Box hiện chưa có.

Các loại fields

Cả 2 plugin đều có số lượng loại field khá lớn: ACF là trên 30 field, còn Meta Box là trên 40 field. Trong đó, một số field quan trọng như repeater, group, tab, relationship đều được cả hai plugin hỗ trợ. Như vậy, bạn có thể nhập hầu như bất cứ loại dữ liệu nào bạn muốn với Meta Box và ACF.

Đáng chú ý, có một số điểm khác biệt mà chỉ một trong hai plugin mới có như:

  • ACF có field link;
  • Meta Box có field Open Street Maps, background, file upload (cho phép user kéo thả file trực tiếp vào phần editor), custom HTML, key value, sidebar, video.

Layout fields

Cả hai plugin đều hỗ trợ các loại field cho layout như group, clone, repeater, flexible content, nhưng cách tiếp cận lại khác nhau.

Plugin Meta Box

Để gom các field thành chung một nhóm, Meta Box có field dạng Group. Nó đóng vai trò tương tự như Group + Repeater trong ACF, trong đó cho phép bạn:

  • Khai báo các field con;
  • Có thể lặp lại (repeat) cả group hoặc các field con tùy chọn (tính năng này ACF không có);
  • Các group có thể lồng nhau vô hạn.
Field dạng Group trong plugin Meta Box

Group + Conditional Logic trong Meta Box tương đương với tính năng Flexible Content của ACF. Bạn có thể tham khảo cách tạo flexible content trong Meta Box tại đây.

Ngoài ra, group trong Meta Box linh hoạt hơn, kể cả về hiển thị và cấu trúc dữ liệu. Nó mô phỏng dữ liệu dạng mảng, lồng nhau, y hệt như cách hiển thị, giúp các developer dễ tiếp cận hơn.

Plugin ACF

ACF có cách tiếp cận khác với Meta Box. Plugin này không đi theo cấu trúc dữ liệu thông thường.

Để tạo nhóm field và lặp lại các field, bạn cần thêm chúng vào các field dạng layout như dưới đây. Tức là chúng bắt buộc phải là các field con của những field dạng layout này:

  • Group: chỉ đóng vai trò như một vỏ bọc bên ngoài, chứa các field con;
  • Clone: cho phép bạn dùng lại một hoặc nhiều field bạn đã khai báo trước đó;
  • Repeater: đóng vai trò như một vỏ bọc chứa nhiều các field con và cho phép user lặp lại dữ liệu nhiều lần;
  • Flexible content: cũng là một field chứa nhiều nhóm field con phù hợp cho từng loại nội dung cụ thể và cho phép user chọn nhóm field con tương ứng khi edit. Nhờ có field này, bạn có thể nhập nhiều loại nội dung rất linh hoạt.
Custom field dạng group trong plugin ACF
Group trong ACF
Flexible content của plugin ACF
Flexible content trong ACF

Kết luận

Cả hai plugin đều hỗ trợ tốt cho các field dạng layout và cách tiếp cận có khác nhau đôi chút. Theo mình thấy, cả hai đều tốt và linh hoạt. Tuy nhiên, tính năng Clone độc lập của Meta Box sẽ giúp bạn làm việc với custom field dễ dàng hơn.

Cách lưu dữ liệu

Cách thức các plugin lưu dữ liệu trong database có vai trò quan trọng vì nó quyết định database của bạn có bị “phình” lên hay không.

Meta Box và ACF có cách lưu trữ dữ liệu khác nhau. Cách làm của Meta Box tốt hơn, giúp dữ liệu của bạn không bị phình và gây ra vấn đề về hiệu suất cho trang của bạn. Còn với ACF, dữ liệu sẽ bị phình lên rất nhanh. Nhưng cách lưu dữ liệu của ACF giúp bạn có thể query được theo dữ liệu này.

Có một tip nho nhỏ khi sử dụng Meta Box: để tìm kiếm trong dữ liệu serialized, bạn hãy sử dụng plugin search như SearchWP nhé (Meta Box có hỗ trợ chính thức cho SearchWP).

Tạo trang Settings

Bạn đều có thể sử dụng Meta Box và ACF để tạo trang setting.

Tuy nhiên, ACF chỉ cho phép bạn tạo trang setting cơ bản với giao diện giống như meta box cho phần chỉnh sửa bài viết thôi.

Meta Box thể hiện tốt hơn khi cho phép bạn tạo trang settings với giao diện giống với WordPress bao gồm các tab (ngang, dọc) và các meta box theo nhiều cách tùy chọn.

Mục pencil để tạo trang settings của plugin Meta Box
Chỉnh sửa màu heading, màu text, footer text của trang settings bằng plugin Meta Box
Chỉnh sửa màu sắc, logo và layout của trang settings bằng plugin Meta Box

Ngoài ra, Meta Box còn cho phép tích hợp trang settings vào Customizer để bạn có thể preview được dễ dàng. Đồng thời, Meta Box còn cho phép tạo trang settings cho cả Multisite Network. Trong khi đó, ACF chưa hỗ trợ các tính năng này.

Plugin Meta Box cho phép tích hợp trang settings vào Customizer của website WordPress

Tạo form trên front-end và tạo form cho user profile

ACF có hỗ trợ khá cơ bản cho việc tạo form trên frontend, chỉ gồm việc xuất form và lưu form thôi.

Meta Box hỗ trợ việc tạo form trên front-end khá tốt. Nó cung cấp nhiều options cho bạn tạo form để submit posts phía ngoài front-end.

Meta Box còn hỗ trợ các form liên quan đến user profile (như login, register và edit profile) còn ACF không có tính năng này.

Meta Box hỗ trợ việc tạo form trên front-end của website WordPress khá tốt.

Conditional logic

Cả 2 plugin đều hỗ trợ rất tốt việc kiểm soát hiển thị form và field theo điều kiện, cụ thể:

  • Cho phép hiển thị form ở những trang cần thiết (ví dụ như chỉ hiện cho các page có page template là A).
  • Ẩn/hiện một field theo giá trị của một field khác.

Tuy nhiên, Meta Box hỗ trợ nhiều điều kiện hơn như IN, CONTAINS, BETWEEN, … Còn ACF chỉ hỗ trợ =!=.

Custom Table

Custom table là yếu tố quan trọng khi dữ liệu của bạn lớn và bạn không muốn lưu chúng trong các bảng meta, mà muốn tối ưu cách lưu chúng vào một table riêng.

Tính năng này hiện chỉ có trong Meta Box thôi. Trong Meta Box, bạn có thể tạo custom table tùy ý, map các cột của các custom table đó với các custom fields và lưu dữ liệu vào đó. Đặc biệt, Meta Box hỗ trợ custom table cho post, user, term và tất cả các tính năng khác

Front-end views

Để hiển thị các custom field ra ngoài frontend một cách nhanh chóng, các dev phải lấy dữ liệu của các custom field này bằng các hàm helper. Cả Meta Box và ACF đều hỗ trợ các hàm helper này, nhưng dev vẫn phải code khá nhiều nếu sử dụng các hàm đó.

Vậy nên Meta Box đã tạo ra một công cụ là MB Views cho phép tạo lập các views ở front end mà không cần code nhiều. Trong khi đó, ACF chưa có công cụ nào để hỗ trợ việc này cả.

Một ưu điểm rất lớn của views trong Meta Box là nó chạy rất nhanh và có khả năng tùy biến lớn. Nhờ có views, các developer sử dụng Meta Box sẽ tiết kiệm được rất nhiều thời gian và công sức

Hỗ trợ các page builder

Nếu không có views thì ngoài việc sử dụng code, các developer thường dùng page builder như Elementor hay Beaver Builder để lấy và hiển thị dữ liệu ra phía front end trực quan hơn.

Hiện tại cả 2 plugin đều hỗ trợ các page builder nổi tiếng như Elementor, Beaver Builder, Brizy.

Tuy nhiên Oxygen Builder, một page builder khá nổi tiếng gần đây chỉ hỗ trợ ACF. Cộng đồng đang vote để plugin này hỗ trợ thêm Meta Box, chúng ta cùng chờ xem nhé.

Ngoài ra, do phổ biến hơn, nên ACF được các page builder hỗ trợ tốt hơn, nhất là phần hiển thị repeater. Trong khi đó, hiện tại Meta Box chưa được hỗ trợ hiển thị repeater.

Local JSON

Plugin Meta Box

Trong Meta Box chưa có tính năng local JSON. Tuy nhiên, Meta Box về bản chất lại như 1 thư viện và cho phép bạn thiết lập cấu hình qua các file PHP. Do đó việc lưu các file cấu hình vào trong theme thì Meta Box tiện lợi hơn vì edit file PHP dễ dàng hơn file JSON.

Ngoài ra, trong Meta Box còn có 1 tính năng ít người để ý tới là thiết lập cấu hình bằng file YML và lưu nó vào 1 thư mục trong theme.

Tuy vậy, trong Meta Box không có phần đồng bộ dữ liệu giữa file PHP/YML với phần chỉnh sửa qua UI.

Plugin ACF

Local JSON là một tính năng mà các developers rất thích ở ACF. Tính năng này cho phép các developer lưu cấu hình của field group vào 1 file JSON trong theme:

Plugin ACF cho phép các WordPress developer lưu cấu hình của field group vào 1 file JSON trong theme

Việc này cho phép developer đồng bộ được cấu hình của các field group giữa file lưu trong theme và phần chỉnh sửa qua UI của ACF.

ACF cũng hỗ trợ việc tạo ra code PHP để khai báo field group thông qua phần Import/Export của mình.

Kết luận

Tính năng Local JSON này mới chỉ có ở ACF, chưa có ở Meta Box. Bởi vậy, ở Meta Box, bạn sẽ phải làm việc với file PHP thay vì file JSON.

Các tính năng khác

Ngoài các tính năng chính kể trên thì cả hai plugin còn có rất nhiều tính năng khác, như:

  • Validation: hiện tại Meta Box hỗ trợ validation bằng JavaScript, còn ACF hỗ trợ bằng PHP + Ajax;
  • Revision: Meta Box hỗ trợ việc theo dõi các thay đổi của custom fields qua revisions, còn ACF thì không hỗ trợ;
  • Rest API: Meta Box hỗ trợ cho việc lấy, update dữ liệu qua REST API, còn ACF phải nhờ qua một plugin bên thứ ba;
  • Admin Columns: Meta Box có hỗ trợ hiển thị các field trong trang danh sách bài viết trong admin, còn ACF thì không;
  • Geolocation: Meta Box giúp rút ngắn thời gian nhập liệu cho các trường geolocation nhờ vào API của Google. Trong khi đó ACF không có phần này.
  • Relationship: Meta Box hỗ trợ relationships một cách triệt để, kể cả bidirectional, reciprocal, các tính năng liên quan đến query phía front end. Còn ACF hỗ trợ các tính năng này rất hạn chế. Meta Box cũng tạo một table riêng cho các dữ liệu relationship để quản lý các dữ liệu này và thứ tự của các item được tốt hơn.
  • Composer: Meta Box có tích hợp phần quản lý giấy phép vào Composer, theo đó, khi bạn mua 1 extension trên Meta Box, bạn sẽ có quyền dùng Composer đối với extension đó (tham khảo thêm về Composer cho Meta Box tại đây). Còn ACF hiện không hỗ trợ Composer.

Giá cả

Khi quyết định mua một plugin, giá cả chắc chắn là một yếu tố quan trọng. Với Meta Box và ACF, bạn đều có được bản miễn phí trên wordpress.org và nếu muốn, có thể mua các bản premium, các extension premium với tính năng cao cấp hơn.

Plugin Meta Box

Meta Box cho phép bạn mua từng extension riêng lẻ với giá vào khoảng từ $39 tới $59. Để tiết kiệm, Meta Box có các gói linh hoạt cho bạn, tất cả đều có thể được dùng cho không giới hạn các website, cụ thể:

  • $79 / năm: có 12 extensions cơ bản;
  • $149 / năm: có tất cả các extensions/tính năng;
  • $349 / trọn đời: có tất cả các extensions/tính năng và được update trọn đời.

Plugin ACF

ACF chỉ có một bản PRO với các mức giá như sau:

  • $49 / năm: dùng cho 1 website;
  • $149 / năm: dùng cho 10 website;
  • $249 / năm: dùng cho không giới hạn các website.

Rất tiếc là ACF không có gói trọn đời, mua 1 lần dùng mãi mãi.

Kết luận

So với ACF, Meta Box đưa ra nhiều gói linh hoạt hơn cho developer để lựa chọn. Nếu chỉ so sánh về bản đầy đủ nhất (tức là bao gồm đầy đủ tất cả các tính năng), thì giá của Meta Box rẻ chỉ bằng 60% so với ACF ($149 so với $249). Đặc biệt, Meta Box có gói trọn đời, mua một lần dũng mãi mãi mà ACF lại không có gói này.

Cộng đồng, tài liệu và hỗ trợ

Cả 2 plugin đều có số lượng người dùng cực kỳ đông đảo: Meta Box là 500000 người dùng, ACF là 1 triệu người dùng. Vậy nên bạn có thể nhận được nhiều hỗ trợ từ các cộng đồng rộng lớn này. Điểm khác biệt duy nhất là Meta Box có group cộng đồng chính thức trên Facebook. Trong khi đó ACF chỉ có group Facebook do người dùng tự lập ra thôi..

Cả 2 plugin đều có trang documentation khá đầy đủ và chi tiết cho người dùng. Xét về mặt trình bày, document của Meta Box trông rõ ràng và cấu trúc tốt hơn ACF.

Bên cạnh đó, Meta Box và ACF đều hỗ trợ qua forum. Hai bên đều hỗ trợ khá tốt, chuyên nghiệp, nhằm giải đáp các thắc mắc về mặt kỹ thuật cho người dùng. Nếu không muốn dùng forum, bạn còn có thể liên hệ với hai plugin này qua email để nhận thêm hỗ trợ đấy.

Cuối cùng, điểm khác biệt lớn nhất giữa Meta Box và ACF đó là Meta Box cung cấp rất nhiều bài viết, hướng dẫn chi tiết và chuyên sâu trên trang blog của mình. Còn các bài tutorial của ACF mà bạn tìm thấy trên mạng phần lớn đều do các bên khác cung cấp.

Kết luận

Làm việc với custom fields là một tác vụ thường gặp đối với developer. Vì thế, lựa chọn một plugin tốt cho custom field không những giúp bạn thực hiện công việc nhanh hơn mà về lâu dài, còn giúp bạn tiết kiệm rất nhiều công sức để xây dựng các tính năng cho website của mình.

Sau khi đánh giá Meta Box và ACF, chúng ta có thể thấy rằng hai plugin có các cách tiếp cận khác nhau và hỗ trợ các tính năng khác nhau. Meta Box có hỗ trợ nhiều UI và nhiều tính năng cho developer hơn. Còn ACF thì được các page builder hỗ trợ nhiều hơn. Về giá cả, Meta Box cũng có mức giá vừa phải và linh động hơn so với ACF.

Tuy nhiên, việc lựa chọn ra plugin phù hợp còn tùy thuộc vào nhu cầu và sở thích của bạn. Hy vọng, bọn mình đã cung cấp đầy đủ hết tất cả những gì bạn cần khi lựa chọn giữa hai plugin custom fields này và giúp quyết định của bạn dễ dàng hơn.

Để 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 *