Field Forge can import field groups and values from ACF Pro installations. The migration is safe and non-destructive.
Detection Sources
- Database:
acf-field-groupandacf-fieldpost types. - Local PHP: Groups registered via
acf_add_local_field_group(). - PostMeta: ACF reference keys in
wp_postmeta.
php
$importer = FIELDFORGE_ACF_Import::instance();
$detection = $importer->detect();
// Returns: ['found' => true, 'groups' => 5, 'fields' => 47, 'posts_with_values' => 123, 'source' => 'database']Group Import
php
$result = $importer->import_groups();
// Returns: ['migrated' => 5, 'errors' => 0, 'log' => [...]]Before importing database-stored groups, Field Forge de-duplicates ACF group records by key/title and keeps the record with the most direct child acf-field posts. This protects migrations from old ACF databases where an empty duplicate group exists beside the populated group and would otherwise hide nested Repeater, Group, or Flexible Content children.
Value Migration (PRO)
Values are migrated in batches of 50 posts at a time.
php
$offset = 0;
do {
$result = $importer->import_values_batch( $offset );
$offset = $result['total_offset'];
} while ( ! $result['done'] );
echo 'Migration complete. ' . $result['migrated'] . ' values migrated.';Field Type Mapping
| ACF Type | Field Forge Type | Notes |
|---|---|---|
text | text | Direct mapping |
textarea | textarea | Preserves new_lines |
number | number | Preserves min/max/step |
image | image | Preserves return_format |
file | file | Preserves return_format |
wysiwyg | wysiwyg | Preserves toolbar settings |
select | select | Preserves choices |
repeater | repeater | Recursive sub-field import |
group | group | Recursive sub-field import |
flexible_content | flexible_content | Layouts and sub-fields |
link | url | Downgraded (ACF link has title+target) |
google_map | text | Downgraded (no map type) |
date_time_picker | date_picker | Time portion dropped |
—