Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Set new ACF Save and Load points
- add_filter('acf/settings/save_json', 'set_acf_json_save_folder');
- function set_acf_json_save_folder( $path ) {
- $path = dirname(__FILE__) . '/acf-json';
- return $path;
- }
- add_filter('acf/settings/load_json', 'add_acf_json_load_folder');
- function add_acf_json_load_folder( $paths ) {
- unset($paths[0]);
- $paths[] = dirname(__FILE__) . '/acf-json';
- return $paths;
- }
- // Automatically import fields
- add_action( 'admin_init', 'article_gamification_sync_acf_fields' );
- function article_gamification_sync_acf_fields() {
- // vars
- $groups = acf_get_field_groups();
- $sync = array();
- // bail early if no field groups
- if( empty( $groups ) )
- return;
- // find JSON field groups which have not yet been imported
- foreach( $groups as $group ) {
- // vars
- $local = acf_maybe_get( $group, 'local', false );
- $modified = acf_maybe_get( $group, 'modified', 0 );
- $private = acf_maybe_get( $group, 'private', false );
- // ignore DB / PHP / private field groups
- if( $local !== 'json' || $private ) {
- // do nothing
- } elseif( ! $group[ 'ID' ] ) {
- $sync[ $group[ 'key' ] ] = $group;
- } elseif( $modified && $modified > get_post_modified_time( 'U', true, $group[ 'ID' ], true ) ) {
- $sync[ $group[ 'key' ] ] = $group;
- }
- }
- // bail if no sync needed
- if( empty( $sync ) )
- return;
- if( ! empty( $sync ) ) { //if( ! empty( $keys ) ) {
- // vars
- $new_ids = array();
- foreach( $sync as $key => $v ) { //foreach( $keys as $key ) {
- // append fields
- if( acf_have_local_fields( $key ) ) {
- $sync[ $key ][ 'fields' ] = acf_get_local_fields( $key );
- }
- // import
- $field_group = acf_import_field_group( $sync[ $key ] );
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement