{"id":167175,"date":"2025-07-21T09:00:00","date_gmt":"2025-07-21T09:00:00","guid":{"rendered":"https:\/\/gtechgroup.it\/blog\/acf-import-export-sincronizzazione-json\/"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T22:00:00","slug":"acf-import-export-sincronizzazione-json","status":"publish","type":"post","link":"https:\/\/gtechgroup.it\/blog\/acf-import-export-sincronizzazione-json\/","title":{"rendered":"ACF: Import, Export e Sincronizzazione JSON dei Field Group"},"content":{"rendered":"<h2>Perch&#233; Import, Export e Sincronizzazione JSON Sono Fondamentali<\/h2>\n<p>In qualsiasi progetto WordPress professionale, la gestione delle configurazioni ACF tra diversi ambienti (sviluppo locale, staging, produzione) &#232; un&#8217;esigenza critica. Quando lavori su un sito in locale, crei gruppi di campi, li testi e li perfezionate. Poi devi trasferire queste configurazioni al server di produzione. Senza un sistema strutturato, questo processo diventa manuale, soggetto a errori e impossibile da tracciare nel tempo. ACF affronta questo problema con tre strumenti potenti: l&#8217;<strong>import\/export<\/strong> tramite file JSON e PHP, e la <strong>sincronizzazione JSON locale<\/strong> (Local JSON) che automatizza il salvataggio e il caricamento delle configurazioni.<\/p>\n<p>Questi strumenti non sono semplici comodit&#224;: sono componenti essenziali di un workflow di sviluppo professionale. Permettono di <strong>versionare le configurazioni<\/strong> con Git, di <strong>sincronizzare gli ambienti<\/strong> senza interventi manuali nel database, di <strong>collaborare in team<\/strong> senza sovrascrivere il lavoro altrui e di <strong>ripristinare configurazioni<\/strong> precedenti in caso di errori. In questo articolo esploreremo ogni aspetto di questi strumenti, dalla configurazione base alle strategie avanzate per i workflow di sviluppo professionali.<\/p>\n<h2>Export e Import Manuale: JSON e PHP<\/h2>\n<p>ACF offre due formati di esportazione manuale: <strong>JSON<\/strong> e <strong>PHP<\/strong>. Entrambi sono accessibili dalla sezione <strong>ACF &gt; Tools<\/strong> della dashboard. L&#8217;esportazione JSON genera un file <code>.json<\/code> che contiene la configurazione completa di uno o pi&#249; gruppi di campi selezionati: campi, sottocampi, opzioni, regole di posizionamento, impostazioni del gruppo &#8212; tutto ci&#242; che serve per ricreare esattamente lo stesso gruppo in un&#8217;altra installazione WordPress.<\/p>\n<p>Per esportare, vai su <strong>ACF &gt; Tools<\/strong>, seleziona i gruppi di campi che vuoi esportare e clicca su <strong>Export File<\/strong>. Il browser scaricher&#224; un file JSON che puoi conservare come backup o trasferire ad un&#8217;altra installazione. Per importare, vai sulla stessa pagina nell&#8217;installazione di destinazione, seleziona il file JSON nella sezione <strong>Import Field Groups<\/strong> e clicca su <strong>Import File<\/strong>. ACF creer&#224; i gruppi di campi importati, o aggiorner&#224; quelli esistenti se hanno la stessa chiave univoca (field group key).<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/gtechgroup.it\/blog\/wp-content\/uploads\/2026\/05\/acf-03-tools.png\" alt=\"Strumenti di import export di ACF per la gestione dei gruppi di campi\" \/><\/p>\n<p>L&#8217;esportazione <strong>PHP<\/strong> genera invece codice PHP che pu&#242; essere inserito direttamente nel file <code>functions.php<\/code> del tema o in un plugin personalizzato. Questo codice utilizza la funzione <code>acf_add_local_field_group()<\/code> per registrare i gruppi di campi a livello di codice, senza bisogno che siano presenti nel database. Il vantaggio &#232; che i gruppi di campi diventano parte integrante del tema e non possono essere accidentalmente modificati o cancellati dalla dashboard. Lo svantaggio &#232; che le modifiche richiedono l&#8217;editing del codice PHP, il che pu&#242; non essere ideale in tutti i contesti.<\/p>\n<h2>Local JSON: La Sincronizzazione Automatica<\/h2>\n<p>La funzionalit&#224; <strong>Local JSON<\/strong> &#232; il sistema pi&#249; elegante e pratico per gestire le configurazioni ACF in un workflow di sviluppo professionale. Quando Local JSON &#232; attivo, ACF salva automaticamente un file JSON nella cartella del tema ogni volta che un gruppo di campi viene creato o aggiornato. Contemporaneamente, al caricamento del sito, ACF controlla se ci sono file JSON pi&#249; recenti rispetto alla versione nel database e li carica automaticamente.<\/p>\n<p>Per attivare Local JSON, crea semplicemente una cartella chiamata <code>acf-json<\/code> nella directory root del tuo tema attivo:<\/p>\n<pre><code>wp-content\/themes\/mio-tema\/acf-json\/<\/code><\/pre>\n<p>Assicurati che la cartella abbia i permessi di scrittura corretti (755 o 775) perch&#233; ACF possa crearvi i file. Non servono configurazioni aggiuntive: ACF rileva automaticamente la presenza della cartella e attiva il sistema Local JSON. Da questo momento, ogni volta che salvi un gruppo di campi nella dashboard, ACF generer&#224; (o aggiorner&#224;) un file JSON nella cartella <code>acf-json<\/code> con un nome basato sulla chiave del gruppo (ad esempio <code>group_64a3b2c1d4e5f.json<\/code>).<\/p>\n<h2>Vantaggi del Local JSON per il Versionamento<\/h2>\n<p>Il vantaggio principale del Local JSON &#232; la possibilit&#224; di <strong>versionare le configurazioni ACF con Git<\/strong>. Poich&#233; i file JSON sono nella cartella del tema, vengono inclusi nel repository Git insieme al codice del tema. Questo significa che ogni modifica a un gruppo di campi genera un commit tracciabile, con la possibilit&#224; di vedere esattamente cosa &#232; cambiato (campi aggiunti, opzioni modificate, regole di posizionamento cambiate) attraverso il diff del file JSON.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/gtechgroup.it\/blog\/wp-content\/uploads\/2026\/05\/acf-01-groups.png\" alt=\"Gestione dei gruppi di campi ACF con sincronizzazione JSON\" \/><\/p>\n<p>In un workflow basato su Git, il processo tipico &#232;: lo sviluppatore crea o modifica un gruppo di campi nell&#8217;ambiente locale, ACF salva automaticamente il file JSON aggiornato, lo sviluppatore fa commit dei file JSON modificati, il codice viene deployato al server di staging\/produzione tramite Git pull o CI\/CD, ACF rileva i file JSON aggiornati e sincronizza il database. Questo flusso elimina completamente la necessit&#224; di esportare e importare manualmente i gruppi di campi tra gli ambienti.<\/p>\n<p>Un altro vantaggio significativo &#232; il <strong>miglioramento delle performance<\/strong>. Quando Local JSON &#232; attivo, ACF carica le configurazioni dai file JSON locali invece di eseguire query al database. Questo &#232; pi&#249; veloce, specialmente su siti con molti gruppi di campi, perch&#233; la lettura di file locali &#232; generalmente pi&#249; rapida di una query SQL. ACF memorizza anche il risultato nella cache dell&#8217;oggetto per evitare letture ripetute del filesystem.<\/p>\n<h2>Sincronizzazione dei Campi tra Ambienti<\/h2>\n<p>La sincronizzazione tra ambienti &#232; uno degli aspetti pi&#249; delicati della gestione ACF. Con Local JSON, il processo &#232; semi-automatico ma richiede un&#8217;azione manuale: dopo aver trasferito i file JSON aggiornati al server (tramite Git, FTP o deploy automatico), devi andare su <strong>ACF &gt; Field Groups<\/strong> dove vedrai un avviso che indica i gruppi che necessitano di sincronizzazione. Clicca su <strong>Sync<\/strong> per aggiornare il database con le configurazioni dei file JSON.<\/p>\n<p>Puoi anche automatizzare completamente la sincronizzazione utilizzando un hook PHP nel <code>functions.php<\/code> del tema. Il filtro <code>acf\/settings\/json<\/code> e le funzioni di sincronizzazione programmatica di ACF permettono di importare automaticamente le modifiche senza intervento manuale. Tuttavia, questa automazione va implementata con cautela per evitare conflitti quando pi&#249; sviluppatori modificano gli stessi gruppi di campi contemporaneamente.<\/p>\n<h2>Personalizzare la Cartella di Salvataggio JSON<\/h2>\n<p>Per impostazione predefinita, ACF salva i file JSON nella cartella <code>acf-json<\/code> del tema attivo. Puoi personalizzare questa posizione utilizzando i filtri <code>acf\/settings\/save_json<\/code> e <code>acf\/settings\/load_json<\/code>. Il primo controlla dove ACF salva i file, il secondo dove li cerca:<\/p>\n<pre><code>&lt;?php\n\/\/ Salvare i JSON in una cartella personalizzata\nadd_filter(acf\/settings\/save_json, custom_acf_json_save_point);\nfunction custom_acf_json_save_point($path) {\n    return get_stylesheet_directory() . \/acf-json;\n}\n\n\/\/ Caricare i JSON da pi&#249; cartelle\nadd_filter(acf\/settings\/load_json, custom_acf_json_load_point);\nfunction custom_acf_json_load_point($paths) {\n    \/\/ Rimuovi il path predefinito\n    unset($paths[0]);\n    \/\/ Aggiungi il path del tema figlio\n    $paths[] = get_stylesheet_directory() . \/acf-json;\n    \/\/ Aggiungi il path del tema genitore\n    $paths[] = get_template_directory() . \/acf-json;\n    \/\/ Aggiungi il path di un plugin\n    $paths[] = plugin_dir_path(__FILE__) . acf-json;\n    return $paths;\n}\n?&gt;<\/code><\/pre>\n<p>La possibilit&#224; di caricare JSON da pi&#249; cartelle &#232; particolarmente utile quando lavori con temi figlio (child theme): puoi avere gruppi di campi &#8220;base&#8221; nel tema genitore e gruppi aggiuntivi nel tema figlio. &#200; utile anche per i plugin: un plugin pu&#242; includere la propria cartella <code>acf-json<\/code> con i gruppi di campi necessari al suo funzionamento.<\/p>\n<h2>Gestire i Conflitti di Sincronizzazione<\/h2>\n<p>Quando pi&#249; sviluppatori lavorano sullo stesso progetto e modificano gli stessi gruppi di campi, possono verificarsi <strong>conflitti di sincronizzazione<\/strong>. Il file JSON contiene un timestamp <code>modified<\/code> che ACF utilizza per determinare quale versione &#232; pi&#249; recente. Se due sviluppatori modificano lo stesso gruppo contemporaneamente e fanno commit, il secondo merge in Git generer&#224; un conflitto nel file JSON.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/gtechgroup.it\/blog\/wp-content\/uploads\/2026\/05\/acf-02-newgroup.png\" alt=\"Creazione e sincronizzazione dei gruppi di campi ACF tra ambienti\" \/><\/p>\n<p>Per gestire questi conflitti, la best practice &#232; stabilire <strong>regole di team<\/strong>: un solo sviluppatore alla volta modifica i gruppi di campi, le modifiche vengono comunicate al team prima di fare commit, e i merge vengono gestiti con attenzione verificando il file JSON risultante. In alternativa, puoi adottare la strategia di <strong>un gruppo di campi per file<\/strong> (che &#232; gi&#224; il comportamento predefinito di ACF) e assegnare la responsabilit&#224; di specifici gruppi a specifici sviluppatori, minimizzando la probabilit&#224; di conflitti.<\/p>\n<p>Se un conflitto si verifica, risolverlo manualmente nel file JSON &#232; possibile ma rischioso: i file JSON di ACF sono complessi e un errore nella risoluzione pu&#242; corrompere la configurazione. La strategia pi&#249; sicura &#232; accettare una delle due versioni (solitamente la pi&#249; recente), applicarla e poi reintegrare manualmente le modifiche dell&#8217;altra versione attraverso l&#8217;interfaccia di ACF.<\/p>\n<h2>Backup e Ripristino delle Configurazioni<\/h2>\n<p>Il Local JSON con Git fornisce un sistema di backup e ripristino naturale: puoi tornare a qualsiasi versione precedente delle configurazioni ACF semplicemente facendo checkout del commit desiderato e sincronizzando il database. Senza Git, puoi comunque mantenere backup manuali copiando periodicamente la cartella <code>acf-json<\/code> o esportando i gruppi di campi come file JSON dalla sezione Tools.<\/p>\n<p>Una strategia di backup robusta prevede tre livelli: il <strong>Local JSON nel repository Git<\/strong> come backup primario con storico completo delle modifiche, <strong>esportazioni periodiche<\/strong> tramite Tools come backup secondario (utile se il Local JSON viene accidentalmente corrotto), e il <strong>backup del database<\/strong> che include le configurazioni ACF nella tabella <code>wp_posts<\/code> (i gruppi di campi sono salvati come custom post type <code>acf-field-group<\/code>).<\/p>\n<h2>WP-CLI e Automazione<\/h2>\n<p>Per i workflow pi&#249; avanzati, ACF supporta <strong>WP-CLI<\/strong> per le operazioni di import\/export dalla riga di comando. Puoi esportare tutti i gruppi di campi con <code>wp acf export<\/code> e importarli con <code>wp acf import<\/code>. Questo &#232; particolarmente utile per gli script di deploy automatizzato e le pipeline CI\/CD dove non c&#8217;&#232; accesso alla dashboard WordPress.<\/p>\n<p>Puoi anche creare script personalizzati che automatizzano la sincronizzazione come parte del processo di deploy. Ad esempio, uno script post-deploy che esegue <code>wp acf sync<\/code> per sincronizzare automaticamente tutti i gruppi di campi dal Local JSON al database, senza bisogno di accedere alla dashboard e cliccare manualmente il pulsante Sync. Questo livello di automazione &#232; essenziale per team che praticano il continuous deployment.<\/p>\n<p>La padronanza degli strumenti di import, export e sincronizzazione JSON di ACF &#232; ci&#242; che distingue un utilizzo amatoriale da un utilizzo professionale del plugin. Questi strumenti, combinati con un workflow Git disciplinato, garantiscono che le configurazioni ACF siano sempre sotto controllo, tracciabili, replicabili e sicure, indipendentemente dalla complessit&#224; del progetto e dal numero di ambienti coinvolti.<\/p>\n<div style=\"background:#f9f9f9;border:1px solid #e0e0e0;padding:20px;margin:30px 0;border-radius:8px;\">\n<h3>Leggi anche gli altri articoli della serie ACF<\/h3>\n<ul>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/installare-configurare-acf-advanced-custom-fields\/\">Come Installare e Configurare Advanced Custom Fields su WordPress<\/a><\/li>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/acf-creare-primo-gruppo-campi-personalizzati\/\">ACF: Creare il Primo Gruppo di Campi Personalizzati<\/a><\/li>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/acf-tipi-campo-testo-immagine-relazione\/\">Tutti i Tipi di Campo ACF: Testo, Immagine, Relazione e Altro<\/a><\/li>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/acf-repeater-field-contenuti-ripetibili\/\">ACF e i Repeater Field: Creare Contenuti Ripetibili e Flessibili<\/a><\/li>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/acf-options-page-impostazioni-globali-tema\/\">ACF e le Options Page: Impostazioni Globali per il Tema<\/a><\/li>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/acf-visualizzare-campi-frontend-template-shortcode\/\">Visualizzare i Campi ACF nel Frontend: Template e Shortcode<\/a><\/li>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/acf-elementor-campi-personalizzati-page-builder\/\">ACF e Elementor: Usare i Campi Personalizzati nel Page Builder<\/a><\/li>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/acf-woocommerce-campi-personalizzati-prodotti\/\">ACF e WooCommerce: Aggiungere Campi Personalizzati ai Prodotti<\/a><\/li>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/acf-flexible-content-layout-dinamici\/\">ACF Flexible Content: Layout Dinamici Senza Page Builder<\/a><\/li>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/acf-gutenberg-blocchi-custom-campi\/\">ACF e Gutenberg: Blocchi Custom con Campi Personalizzati<\/a><\/li>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/acf-free-vs-pro-confronto-prezzi\/\">ACF Free vs Pro: Confronto Funzionalit&#224; e Prezzi 2026<\/a><\/li>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/acf-vs-custom-fields-vs-meta-box-vs-pods\/\">ACF vs Custom Fields Nativi vs Meta Box vs Pods: Confronto<\/a><\/li>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/acf-query-avanzate-wp-query-meta-query\/\">Query Avanzate con ACF: WP_Query, Meta Query e Performance<\/a><\/li>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/acf-problemi-comuni-troubleshooting\/\">Risolvere i Problemi Comuni di ACF: Troubleshooting<\/a><\/li>\n<\/ul>\n<\/div>\n<p>Per implementare un workflow di sviluppo professionale con ACF, sincronizzazione JSON e deploy automatizzato, il team di <a href=\"https:\/\/gtechgroup.it\/realizzazione-siti-web\/\">G Tech Group &#232; specializzato nella realizzazione di siti web<\/a> con processi di sviluppo strutturati e affidabili. <a href=\"https:\/\/gtechgroup.it\/contatti\/\">Contattaci<\/a> per una consulenza e porta il tuo progetto WordPress al livello professionale.<\/p>\n<h3>Migliora il Tuo Sito WordPress<\/h3>\n<p>Scopri le nostre guide complete sugli altri plugin essenziali per WordPress:<\/p>\n<ul>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/come-installare-elementor-wordpress-guida-principianti\/\">Come Installare Elementor su WordPress<\/a><\/li>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/wp-rocket-installare-configurare-wordpress\/\">Come Installare e Configurare WP Rocket<\/a><\/li>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/come-installare-configurare-seopress-wordpress-guida\/\">Come Installare e Configurare SEOPress<\/a><\/li>\n<li><a href=\"https:\/\/gtechgroup.it\/blog\/installare-attivare-updraftplus-wordpress\/\">Come Installare e Configurare UpdraftPlus<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Perch&#233; Import, Export e Sincronizzazione JSON Sono Fondamentali In qualsiasi progetto WordPress professionale, la gestione delle configurazioni ACF tra diversi ambienti (sviluppo locale, staging, produzione)&hellip;<\/p>\n","protected":false},"author":0,"featured_media":167114,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_seopress_robots_primary_cat":"","_seopress_titles_title":"ACF Import Export e JSON Sync | Guida","_seopress_titles_desc":"Come importare, esportare e sincronizzare i field group ACF con JSON. Workflow sviluppo e deploy.","_seopress_robots_index":"","footnotes":""},"categories":[1],"tags":[2602,3182,3181,3389,3561,492],"class_list":["post-167175","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-senza-categoria","tag-acf","tag-export","tag-import","tag-json","tag-sincronizzazione","tag-wordpress"],"_links":{"self":[{"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/posts\/167175","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/comments?post=167175"}],"version-history":[{"count":0,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/posts\/167175\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/media\/167114"}],"wp:attachment":[{"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/media?parent=167175"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/categories?post=167175"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/tags?post=167175"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}