Solved it, it was a new build and ACF wasn’t enabled *eyeroll*
This will be spread across multiple plugins and field groups over time and its really about keeping that workflow as simple as possible so I’m happy with the performance hit for ease of use and that flexibility.
It’s a weird use case really, I am just after that holy grail. Im after portability between devs / environments, storing JSON where its theme independent and alongside its associated plugin functionality.
Thanks for your help.
Here is what I come up with based on your suggestion:
function my_save_json( $path ) {
if( isset($_POST['acf_field_group']['key']) ) {
$paths = my_load_json(array()); // pass in empty array to only get local paths
foreach( $paths as $load_path ) {
// loop over each load path for json files
foreach (glob($load_path . "/*.json") as $filename) {
$field_group = json_decode(file_get_contents($filename), true);
// if the key matches a group in this plugin then return the path
if (is_array($field_group) && $field_group['key'] == $_POST['acf_field_group']['key']) {
return $load_path;
}
}
}
}
// return
return $path;
}
function my_load_json( $paths ) {
$paths[] = MY_PLUGIN_DIR .'fields';
return $paths;
}
This works on next field group save if I move the generated JSON file into my plugin directory.
How does that look to you?
This looks promising, checking the $_POST could work well, thanks.
I’ll give it a go and let you know how I go.
Argh, thanks for your help, you put me on the right track. acf_get_field_groups doesn’t load local groups but the acf_local class does run a filter which looks for these groups. I was calling acf_get_field_groups directly in my functions.php (while testing) and on init action but that filter hadn’t run yet.
Calling acf_get_field_groups later in the action pipeline (wp / wp_loaded) etc showed the fields.
Thanks for your help.
That’s right,
And acf_get_field_groups my JSON group isn’t listed.
Thanks for your reply,
The issue I am having specifically is acf_get_field_group() and acf_get_fields() etc don’t “see” my field group stored as JSON within my plugin folder.
ACF reads them OK and displays the fields in the admin section but I can’t load their fields using the above calls.
GAH! I was setting post type property incorrectly! Please close / delete thread 😀
Welcome to the Advanced Custom Fields community forum.
Browse through ideas, snippets of code, questions and answers between fellow ACF users
Helping others is a great way to earn karma, gain badges and help ACF development!
We use cookies to offer you a better browsing experience, analyze site traffic and personalize content. Read about how we use cookies and how you can control them in our Privacy Policy. If you continue to use this site, you consent to our use of cookies.