Moving from ACF
WP Freeform Fields reads values where ACF saved them and keeps field keys, so a site can move over without converting data.
Steps
- Back up the site.
- Install and activate WP Freeform Fields next to ACF. While ACF is active, WP Freeform Fields stays out of its way: ACF's fields,
acf-jsonfiles, blocks and function names remain ACF's. - Open Custom Fields → Tools → Migrate from ACF. Read the theme check first: it lists any ACF functions or
acf/…hooks your theme uses that WP Freeform Fields does not provide. Then import. - Deactivate ACF. Themes that use
get_field()keep working: values are read where ACF saved them, andacf/…filters in the theme (for exampleacf/load_fieldthat fills choices) keep running.
With WP-CLI, step 3 is:
bash
wp wpff import-acf --dry-run
wp wpff import-acfThe import moves post types, taxonomies, options pages and field groups from the database, in that order.
If ACF is deactivated first
The site keeps working: field groups and options pages are read from ACF's tables (read-only, marked ACF in the list) until you migrate them.
ACF JSON files in acf-json are read too. Groups exported from ACF as PHP work as they are.
ACF to REST API
The REST output of the ACF to REST API plugin (acf/v3/… routes and the acf property) is served too while that plugin is active and ACF is not, with stricter access:
- only the fields of each object's groups;
- core REST visibility rules;
- options page fields only for users who may open the page, unless the group is shown in REST.
Before switching a production site
Read Known differences and ACF compatibility.