
ACF JSON sync is powerful for managing custom fields in development environments, but it can break during migrations, updates, or theme changes. If your JSON sync is missing, greyed out, or changes don’t apply, this guide walks you through real-world fixes.
Why ACF JSON Sync Breaks
Common triggers:
- Fields not showing in sync tab
- Sync button missing after migration
- Fields revert after saving
- JSON folder ignored by ACF
- UI changes not reflected in templates
- Theme switched or using child theme
- Permissions or version mismatch
Quick Fix Checklist
Run through these first:
- Folder exists:
/acf-json/ - Folder writable (775 recommended)
- Same ACF version across environments
- Save field group once manually
- Clear WordPress cache / OPcache
- Remove old JSON files and refresh ACF field groups page
chmod -R 775 wp-content/themes/your-theme/acf-json
ACF JSON Path Setup
Confirm the save + load locations. Add to your theme/plugin:
// Save JSON
add_filter('acf/settings/save_json', function ($path) {
return get_stylesheet_directory() . '/acf-json';
});
// Load JSON
add_filter('acf/settings/load_json', function ($paths) {
unset($paths[0]);
$paths[] = get_stylesheet_directory() . '/acf-json';
return $paths;
});
If using a child theme
return get_stylesheet_directory() . '/acf-json'; // child theme
// instead of get_template_directory()
Full Fix Workflow
Recommended process for clean sync:
- Backup JSON folder
- Delete stale
.jsonfiles - Commit fresh JSON to Git repo (if using Git)
- Open ACF → Field Groups
- Click Sync available fields
- Re-save each field group once
- Clear cache + refresh pages with ACF data
Verification snippet:
var_dump(get_stylesheet_directory() . '/acf-json');
If it prints expected path, the theme is pointing correctly.
Environment Version Fix
Always match versions:
| Env | ACF Version |
|---|---|
| Local | ✅ same version |
| Staging | ✅ same version |
| Production | ✅ same version |
Mismatched ACF versions cause sync issues.
Best Practices
- One source of truth (dev)
- JSON folder in Git (always commit changes)
- Avoid editing fields in production
- Always "Save Field Group" after deploy
- Keep folder name exactly
acf-json
Elementor / Bricks Builder Note
After syncing:
- Elementor: Regenerate CSS + Data → Clear cache
- Bricks: Rebuild Cache
- Block Editor: Clear WP transient cache
Common Issues Table
| Issue | Fix |
|---|---|
| JSON folder exists but sync missing | Check path filters / permissions |
| Fields revert after updating | Clear cache + save group again |
| ACF data not showing on front end | Template uses wrong key or theme cache |
| Site migrated; fields missing | Copy JSON + sync + re-save |
| Two ACF JSON folders | Remove duplicates / unify source |
Example Folder Structure
wp-content/
themes/
your-theme/
acf-json/
group_header.json
group_footer.json
group_home.json
Testing Snippet
echo get_field('hero_title') ?: 'ACF field empty – check sync';
ACF JSON Sync Checklist
-
acf-jsonfolder exists in theme - Permissions set (775)
- Correct
save_jsonandload_json - Same ACF version everywhere
- Field groups synced + re-saved
- Caches cleared (WP + server)
- Only one JSON sync location
Need ACF Fix Help?
I fix:
- Broken ACF sync
- Repeater & flexible content issues
- ACF + Elementor dynamic data
- ACF migrations
- ACF PHP template errors
👉 Hire me on Fiverr: https://www.fiverr.com/fysalyaqoob
Fast turnaround + clean code.

WordPress ACF Developer
Expert WordPress & Shopify Developer
Senior full-stack developer with 10+ years experience specializing in WordPress, Shopify, and headless CMS solutions. Delivering custom themes, plugins, e-commerce stores, and scalable web applications.

