Migrating from ACF
Why migration is safe#
Ultivo Toolkit stores field values the same way ACF does: a field_name meta entry holding the value, and a _field_name entry pointing at the field's key. Migrating only converts the field group definitions: your actual content, stored as post, user, term or option meta, is never touched. As long as the field keys carry over unchanged, that existing meta keeps resolving to the same field, immediately.
Running the migration#
Go to Ultivo Toolkit → Tools → Migrate from ACF. The page reports how many ACF field groups it found (both in the database and in a theme acf-json folder) then converts them on demand:
- Database groups (
acf-field-groupposts and their child fields) are read and rebuilt as Ultivo Toolkit field groups. acf-jsonfiles are converted the same way, skipped when a database group with the same key already won.
Field keys are preserved throughout, so nothing needs to change in the database for existing meta to keep working. Most ACF field types map directly to their Ultivo Toolkit equivalent; Google Map fields become Map (backed by OpenStreetMap instead of the Google Maps API), and any unrecognized type falls back to Text so nothing is silently dropped.
After migrating#
The quickest way across is a rename: get_field() becomes ultivo_get_field(), have_rows()/the_row() become ultivo_have_rows()/ultivo_the_row(), and so on. Those functions are fully supported and there is no rush to leave them.
Where you end up, and what we would write in a new template, is the Template API: ultivo_field( 'hero_title' ) for a value and foreach ( ultivo_rows( 'team' ) as $member ) for a repeater. You can move one template at a time; the two live side by side.
ACF doesn't need to stay active: Ultivo Toolkit is a standalone plugin and doesn't depend on it at runtime, before or after migrating.