Known differences from ACF
Read this before switching a production site.
- In the block editor, an empty required field blocks every save, drafts included. ACF lets you save drafts.
- Repeater pagination only splits rows into pages in the editor. All rows are still loaded and saved together, so very large repeaters load as slowly as without pagination.
the_field()escapes its output withwp_kses_post(), as ACF does since 6.2.5. Pages printed with an older ACF may differ in markup details such as attribute order or a trailing;instyle.get_field()is not escaped.- Group layouts
tableandroware simplified:tableis shown asblock. - The block form lives in the sidebar. The old in-block "edit" mode of ACF blocks is not implemented.
- Tabs and accordions work in post meta boxes. On term and user screens, fields are shown as a list.
- Conditional logic is checked only in the browser, as in ACF.
setFieldValue()in thewpff/fieldsstore does not handle images, files, relations or repeater rows.- Only part of ACF's API exists: the template functions,
acf_form(), the commonacf_get_*helpers and the mainacf/…hooks. The theme check on the migration screen lists what is missing for your theme. acf_form()has no basic uploader: image and file fields in front-end forms work only for users who can upload files.- There is no WPGraphQL integration yet.
Found another difference? Open an issue.