Skip to content

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 with wp_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 ; in style. get_field() is not escaped.
  • Group layouts table and row are simplified: table is shown as block.
  • 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 the wpff/fields store does not handle images, files, relations or repeater rows.
  • Only part of ACF's API exists: the template functions, acf_form(), the common acf_get_* helpers and the main acf/… 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.

GPL-2.0-or-later. Not affiliated with ACF or WP Engine.