You already use git for collaboration and version control. Let's put your custom fields in Git! We've made the ACF JSON cache the source of truth by forcefully syncing them to your database when you load the Dashboard or Field Groups page. If you've added, modified or deleted a field, then you have something to commit. If you pulled in new, modified or deleted fields, then you have something to sync. Every developer on your team now works with the same Field Groups.
You already separate your website's looks from it's functionality (themes vs plugins). You can now do the same with your custom fields. For example: Store the header settings with your theme, the client's address fields with their core functionality plugin, and those API settings with your API plugin. Made a mistake? No problem. Edit the Field Group, choose a new location, save, and it's been moved.
This plugin was developed with:
- PHP 7.3
- WordPress 5.3.2
- Advanced Custom Fields PRO 5.8.7
Requirements may be lowered after proper testing.
- Back up any existing Field Groups as a precaution.
- Define
WP_ENV
aslocal
on your local environment. (wp-config-local.php
perhaps?) - Download & activate ACF PRO.
- Download & activate ACF Agency Workflow.
- Set ACF local JSON load locations.
Create an acf-json
folder in your theme.
Create an acf-json
folder in your child theme.
Create an acf-json
folder in your parent theme.
Add this code to your parent theme's functions.php
.
/**
* ACF Local JSON location for a parent theme.
*/
add_filter( 'acf/settings/load_json', function ( $paths ) {
$paths[] = get_template_directory().'/acf-json';
return $paths;
});
Create an acf-json
folder in your plugin.
Add this code to your plugin's main file. (plugin-name/plugin-name.php
)
/**
* ACF local JSON location for a plugin.
*/
add_filter( 'acf/settings/load_json', function ( $paths ) {
$paths[] = plugin_dir_path( __FILE__ ).'acf-json';
return $paths;
});
If you have a WP_ENV
defined locally that AAW does not consider "local", you can add yours to the list with this filter.
Add this code to a custom plugin or the theme's functions.php
.
add_filter( 'aaw_local_envs', function ( $local_envs ) {
return array_merge(
$local_envs,
['lokaal'] // local in Dutch
);
});
Found a bug? Anything you'd like to ask, add, change, or have added or changed? Please open an issue so we can talk about it.
The author(s) are not responsible for lost fields or other data. This plugin deletes things, so it can be dangerous. Backups are a good idea. Git can be your backup too.