{"id":167168,"date":"2025-06-02T09:00:00","date_gmt":"2025-06-02T09:00:00","guid":{"rendered":"https:\/\/gtechgroup.it\/blog\/acf-visualizzare-campi-frontend-template-shortcode\/"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T22:00:00","slug":"acf-visualizzare-campi-frontend-template-shortcode","status":"publish","type":"post","link":"https:\/\/gtechgroup.it\/blog\/acf-visualizzare-campi-frontend-template-shortcode\/","title":{"rendered":"Visualizzare i Campi ACF nel Frontend: Template e Shortcode"},"content":{"rendered":"<h2>Dal Backend al Frontend: Mostrare i Dati ACF<\/h2>\n<p>Creare campi personalizzati con ACF &#232; solo met&#224; del lavoro. La vera magia avviene quando i dati inseriti nel backend vengono <strong>visualizzati nel frontend<\/strong> del sito, nelle pagine che i visitatori effettivamente vedono. ACF offre due approcci principali per portare i dati dal pannello di amministrazione al sito pubblico: l&#8217;utilizzo di <strong>funzioni PHP nei template<\/strong> del tema e l&#8217;uso di <strong>shortcode<\/strong> direttamente nell&#8217;editor dei contenuti. Ciascun approccio ha i propri vantaggi e i propri contesti di utilizzo ideali.<\/p>\n<p>In questo articolo esploreremo entrambe le metodologie in dettaglio, partendo dalle funzioni PHP fondamentali di ACF fino ad arrivare alla creazione di shortcode personalizzati. Vedremo anche come gestire correttamente i diversi tipi di campo nel frontend, come applicare la formattazione appropriata e come garantire la sicurezza dell&#8217;output. Che tu sia uno sviluppatore esperto o un webmaster con conoscenze PHP di base, questa guida ti fornir&#224; tutti gli strumenti necessari per integrare perfettamente i campi ACF nel design del tuo sito.<\/p>\n<h2>Le Funzioni PHP Fondamentali di ACF<\/h2>\n<p>ACF mette a disposizione due coppie di funzioni PHP principali per recuperare e visualizzare i valori dei campi. La prima coppia &#232; <code>get_field()<\/code> e <code>the_field()<\/code>: <code>get_field(nome_campo)<\/code> recupera il valore del campo e lo restituisce come variabile PHP (senza stamparlo), mentre <code>the_field(nome_campo)<\/code> recupera il valore e lo stampa direttamente nell&#8217;output HTML. La regola pratica &#232; semplice: usa <code>the_field()<\/code> quando vuoi stampare direttamente il valore nel template e <code>get_field()<\/code> quando devi elaborare il valore prima di visualizzarlo.<\/p>\n<p>La seconda coppia &#232; <code>get_sub_field()<\/code> e <code>the_sub_field()<\/code>, che funzionano in modo identico ma sono specifiche per i <strong>sottocampi<\/strong> all&#8217;interno di Repeater, Flexible Content e Group. Queste funzioni devono essere usate esclusivamente all&#8217;interno di un loop <code>have_rows()<\/code>, altrimenti non restituiscono alcun valore. &#200; un errore comune cercare di usare <code>get_field()<\/code> per accedere ai sottocampi di un Repeater: questo non funziona e restituir&#224; sempre <code>null<\/code>.<\/p>\n<p>Entrambe le coppie di funzioni accettano un secondo parametro opzionale che specifica il <strong>post ID<\/strong> da cui recuperare il valore. Se omesso, ACF utilizza il post corrente nel loop di WordPress. Questo parametro diventa obbligatorio in due situazioni: quando recuperi valori dalle <strong>Options Page<\/strong> (passando la stringa <code>option<\/code>) e quando recuperi valori da un post diverso da quello corrente (passando l&#8217;ID numerico del post).<\/p>\n<h2>Visualizzare Campi di Testo nel Template<\/h2>\n<p>I campi di tipo Text e Text Area sono i pi&#249; semplici da visualizzare. Per un campo di testo breve come un sottotitolo, puoi inserire il seguente codice direttamente nel file template del tema (ad esempio <code>single.php<\/code> o un template part dedicato):<\/p>\n<pre><code>&lt;?php\n$sottotitolo = get_field(sottotitolo);\nif($sottotitolo): ?&gt;\n    &lt;h2 class=\"entry-subtitle\"&gt;&lt;?php echo esc_html($sottotitolo); ?&gt;&lt;\/h2&gt;\n&lt;?php endif; ?&gt;<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/gtechgroup.it\/blog\/wp-content\/uploads\/2026\/05\/acf-03-tools.png\" alt=\"Strumenti e funzioni ACF per la visualizzazione dei campi nel frontend\" \/><\/p>\n<p>Nota tre elementi fondamentali in questo codice. Primo: il controllo <code>if($sottotitolo)<\/code> che verifica se il campo ha un valore prima di visualizzarlo, evitando di mostrare tag HTML vuoti quando il campo non &#232; compilato. Secondo: l&#8217;uso di <code>esc_html()<\/code> per l&#8217;escaping del valore, che previene attacchi XSS convertendo eventuali caratteri HTML speciali nelle corrispondenti entit&#224;. Terzo: il wrapping in un tag HTML con una classe CSS che ti permette di stilizzare il campo nel foglio di stile del tema.<\/p>\n<p>Per i campi Text Area, il trattamento &#232; leggermente diverso. Se hai configurato il campo con l&#8217;opzione &#8220;New Lines&#8221; impostata su &#8220;Automatically add paragraphs&#8221;, il valore restituito conterr&#224; gi&#224; i tag <code>&lt;p&gt;<\/code>. In questo caso, usa <code>wp_kses_post()<\/code> per l&#8217;escaping invece di <code>esc_html()<\/code>, poich&#233; il primo consente i tag HTML sicuri (paragrafi, grassetti, link) mentre il secondo li convertirebbe tutti in testo visibile.<\/p>\n<h2>Visualizzare Campi Immagine<\/h2>\n<p>I campi Image di ACF possono restituire tre formati diversi in base all&#8217;impostazione &#8220;Return Format&#8221;: Array, URL o ID. Ciascun formato richiede un approccio leggermente diverso nel template. Il formato <strong>Array<\/strong> &#232; il pi&#249; completo e versatile:<\/p>\n<pre><code>&lt;?php\n$immagine = get_field(immagine_autore);\nif($immagine): ?&gt;\n    &lt;img src=\"&lt;?php echo esc_url($immagine[url]); ?&gt;\"\n         alt=\"&lt;?php echo esc_attr($immagine[alt]); ?&gt;\"\n         width=\"&lt;?php echo esc_attr($immagine[width]); ?&gt;\"\n         height=\"&lt;?php echo esc_attr($immagine[height]); ?&gt;\" \/&gt;\n&lt;?php endif; ?&gt;<\/code><\/pre>\n<p>L&#8217;array restituito dal campo Image contiene numerose informazioni utili: <code>url<\/code>, <code>alt<\/code>, <code>title<\/code>, <code>caption<\/code>, <code>description<\/code>, <code>width<\/code>, <code>height<\/code>, <code>mime_type<\/code> e un sotto-array <code>sizes<\/code> con gli URL di tutte le dimensioni registrate nel tema (thumbnail, medium, large e qualsiasi dimensione personalizzata). Puoi accedere a una dimensione specifica con <code>$immagine[sizes][medium]<\/code>, che &#232; utile per mostrare versioni pi&#249; piccole dell&#8217;immagine in liste o anteprime.<\/p>\n<p>Se il formato di ritorno &#232; <strong>ID<\/strong>, puoi utilizzare le funzioni native di WordPress per generare il tag immagine con le dimensioni desiderate: <code>wp_get_attachment_image($immagine_id, medium)<\/code> genera un tag <code>&lt;img&gt;<\/code> completo con srcset e attributi responsive. Questo &#232; spesso il metodo preferito dagli sviluppatori pi&#249; esperti perch&#233; sfrutta appieno il sistema di immagini responsive di WordPress, generando automaticamente gli attributi <code>srcset<\/code> e <code>sizes<\/code> per il caricamento ottimale su diversi dispositivi.<\/p>\n<h2>Gestire Campi Relazionali nel Frontend<\/h2>\n<p>I campi relazionali (Post Object, Relationship, Taxonomy, User) restituiscono oggetti WordPress completi, permettendoti di accedere a tutte le propriet&#224; del post, del termine o dell&#8217;utente selezionato. Per un campo <strong>Post Object<\/strong> con ritorno singolo:<\/p>\n<pre><code>&lt;?php\n$post_correlato = get_field(articolo_correlato);\nif($post_correlato): ?&gt;\n    &lt;div class=\"related-post\"&gt;\n        &lt;h3&gt;&lt;a href=\"&lt;?php echo get_permalink($post_correlato-&gt;ID); ?&gt;\"&gt;\n            &lt;?php echo esc_html($post_correlato-&gt;post_title); ?&gt;\n        &lt;\/a&gt;&lt;\/h3&gt;\n        &lt;p&gt;&lt;?php echo esc_html($post_correlato-&gt;post_excerpt); ?&gt;&lt;\/p&gt;\n    &lt;\/div&gt;\n&lt;?php endif; ?&gt;<\/code><\/pre>\n<p>Per un campo <strong>Relationship<\/strong> che restituisce un array di oggetti post, il codice richiede un ciclo foreach per iterare su tutti gli elementi selezionati. Quando lavori con campi relazionali, assicurati di verificare che il post collegato sia ancora pubblicato e accessibile: un post messo in bozza o eliminato potrebbe essere ancora referenziato dal campo ACF, causando link rotti o informazioni inesatte nel frontend.<\/p>\n<h2>Utilizzare gli Shortcode ACF<\/h2>\n<p>ACF include un sistema di shortcode integrato che permette di inserire i valori dei campi direttamente nell&#8217;editor dei contenuti, senza toccare i file del tema. La sintassi base &#232; <code>[acf field=\"nome_campo\"]<\/code>. Questo shortcode stampa il valore del campo del post corrente. Per recuperare un valore da un post specifico, usa <code>[acf field=\"nome_campo\" post_id=\"123\"]<\/code>.<\/p>\n<p>Gli shortcode ACF sono particolarmente utili per chi gestisce i contenuti senza conoscenze di programmazione. Un editor pu&#242; inserire il valore di un campo direttamente nel testo dell&#8217;articolo, nelle widget di testo o in qualsiasi area che supporta gli shortcode di WordPress. Ad esempio, un editor potrebbe scrivere: &#8220;Per informazioni chiamare il <code>[acf field=&quot;telefono_aziendale&quot; post_id=&quot;option&quot;]<\/code>&#8221; e il numero di telefono verr&#224; automaticamente recuperato dalla Options Page.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/gtechgroup.it\/blog\/wp-content\/uploads\/2026\/05\/acf-01-groups.png\" alt=\"Gestione degli shortcode e dei campi ACF nel pannello WordPress\" \/><\/p>\n<p>Tuttavia, gli shortcode hanno alcune limitazioni importanti. Non supportano nativamente i campi complessi come Repeater, Flexible Content o Gallery. Per questi tipi di campo, &#232; necessario creare <strong>shortcode personalizzati<\/strong> che gestiscano la logica di rendering. Inoltre, gli shortcode base di ACF non offrono opzioni di formattazione: il valore viene stampato cos&#236; com&#8217;&#232;, senza wrapping HTML, classi CSS o gestione degli errori.<\/p>\n<h2>Creare Shortcode Personalizzati per ACF<\/h2>\n<p>Per gestire casi d&#8217;uso pi&#249; complessi, puoi creare shortcode personalizzati nel file <code>functions.php<\/code> del tema. Ecco un esempio di shortcode che visualizza un Repeater di testimonial con formattazione HTML completa:<\/p>\n<pre><code>&lt;?php\nfunction shortcode_testimonial_acf($atts) {\n    $atts = shortcode_atts(array(\n        max =&gt; -1,\n    ), $atts);\n\n    $output = ;\n    if( have_rows(testimonial) ):\n        $count = 0;\n        $output .= &lt;div class=\"testimonial-grid\"&gt;;\n        while( have_rows(testimonial) ): the_row();\n            if($atts[max] &gt; 0 &amp;&amp; $count &gt;= $atts[max]) break;\n            $output .= &lt;div class=\"testimonial-card\"&gt;;\n            $output .= &lt;blockquote&gt; . wp_kses_post(get_sub_field(testo)) . &lt;\/blockquote&gt;;\n            $output .= &lt;cite&gt; . esc_html(get_sub_field(nome)) . &lt;\/cite&gt;;\n            $output .= &lt;\/div&gt;;\n            $count++;\n        endwhile;\n        $output .= &lt;\/div&gt;;\n    endif;\n    return $output;\n}\nadd_shortcode(testimonial, shortcode_testimonial_acf);\n?&gt;<\/code><\/pre>\n<p>Questo shortcode pu&#242; essere usato nell&#8217;editor come <code>[testimonial]<\/code> per mostrare tutti i testimonial, oppure <code>[testimonial max=\"3\"]<\/code> per limitarne il numero. La chiave &#232; usare sempre <code>return<\/code> (non <code>echo<\/code>) all&#8217;interno delle funzioni shortcode, e applicare l&#8217;escaping appropriato a ogni valore mostrato nell&#8217;output.<\/p>\n<h2>Template Part Dedicati ai Campi ACF<\/h2>\n<p>Per progetti di medie e grandi dimensioni, la best practice &#232; creare <strong>template part<\/strong> dedicati per i blocchi di visualizzazione dei campi ACF, piuttosto che inserire tutto il codice direttamente nei template principali. Crea una cartella <code>template-parts\/acf\/<\/code> nel tuo tema e inserisci file PHP separati per ogni blocco di campi. Ecco la struttura consigliata:<\/p>\n<pre><code>tema\/\n\u251c\u2500\u2500 template-parts\/\n\u2502   \u2514\u2500\u2500 acf\/\n\u2502       \u251c\u2500\u2500 hero-section.php\n\u2502       \u251c\u2500\u2500 team-members.php\n\u2502       \u251c\u2500\u2500 testimonials.php\n\u2502       \u251c\u2500\u2500 faq-section.php\n\u2502       \u2514\u2500\u2500 cta-banner.php<\/code><\/pre>\n<p>Ogni template part pu&#242; essere incluso nei template principali con <code>get_template_part(template-parts\/acf\/hero-section)<\/code>. Questo approccio mantiene il codice organizzato, facilita la manutenzione e permette di riutilizzare gli stessi blocchi in pi&#249; template. Se un blocco deve ricevere parametri personalizzati, usa il terzo argomento di <code>get_template_part()<\/code> (disponibile da WordPress 5.5) per passare un array di dati.<\/p>\n<h2>Formattazione e Escaping dei Valori<\/h2>\n<p>La corretta formattazione e l&#8217;escaping dei valori ACF nel frontend &#232; un aspetto cruciale spesso trascurato. Ogni tipo di campo richiede un trattamento specifico per garantire sia la corretta visualizzazione sia la sicurezza. Per i campi <strong>Text<\/strong> e <strong>Email<\/strong>, usa <code>esc_html()<\/code>. Per i campi <strong>URL<\/strong> e <strong>Page Link<\/strong>, usa <code>esc_url()<\/code>. Per i campi <strong>Wysiwyg<\/strong> e <strong>Text Area<\/strong> con formattazione HTML, usa <code>wp_kses_post()<\/code>. Per i valori inseriti in attributi HTML (come alt, title, class), usa <code>esc_attr()<\/code>.<\/p>\n<p>Per i campi <strong>Number<\/strong>, puoi formattare il valore con <code>number_format()<\/code> per aggiungere separatori delle migliaia e decimali: <code>number_format(get_field(prezzo), 2, ,, .)<\/code> trasformer&#224; &#8220;1500&#8221; in &#8220;1.500,00&#8221;. Per i campi <strong>Date Picker<\/strong>, il valore salvato &#232; nel formato <code>Ymd<\/code> (es. &#8220;20260315&#8221;): per visualizzarlo in formato leggibile, usa <code>date_i18n(d F Y, strtotime(get_field(data_evento)))<\/code> che produrr&#224; &#8220;15 Marzo 2026&#8221; nella localizzazione italiana.<\/p>\n<p>I campi <strong>Select<\/strong>, <strong>Checkbox<\/strong> e <strong>Radio Button<\/strong> restituiscono valori diversi in base all&#8217;impostazione &#8220;Return Format&#8221;: possono restituire il valore, l&#8217;etichetta o entrambi come array. Verifica sempre quale formato &#232; impostato prima di visualizzare il valore nel template: un errore comune &#232; provare a stampare un array come stringa, che produce il warning &#8220;Array to string conversion&#8221;.<\/p>\n<h2>Gestire Campi Vuoti e Valori di Default<\/h2>\n<p>Non tutti i campi saranno sempre compilati, e il tuo codice frontend deve gestire elegantemente i campi vuoti. La pratica migliore &#232; verificare sempre l&#8217;esistenza del valore prima di tentare di visualizzarlo. Per i campi semplici, un controllo <code>if($valore)<\/code> &#232; sufficiente. Per i campi che possono avere il valore <code>0<\/code> o <code>false<\/code> come valori validi (ad esempio un campo Number con valore 0), usa il controllo pi&#249; specifico <code>if($valore !== null &amp;&amp; $valore !== )<\/code>.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/gtechgroup.it\/blog\/wp-content\/uploads\/2026\/05\/acf-02-newgroup.png\" alt=\"Creazione e configurazione dei campi ACF per il frontend\" \/><\/p>\n<p>Puoi anche implementare <strong>valori di fallback<\/strong> nel template per i campi non compilati. L&#8217;operatore null coalescing di PHP (<code>??<\/code>) &#232; perfetto per questo scopo: <code>$titolo = get_field(titolo_custom) ?? get_the_title();<\/code> usa il titolo personalizzato ACF se disponibile, altrimenti il titolo standard del post. Questo approccio garantisce che la pagina abbia sempre contenuto da mostrare, anche quando i campi ACF non sono stati compilati.<\/p>\n<p>Infine, ricorda che la funzione <code>get_field()<\/code> restituisce <code>false<\/code> quando il campo non esiste o non ha valore, non <code>null<\/code>. Questo &#232; un dettaglio importante quando fai confronti rigorosi. Inoltre, per i campi True\/False, un valore non salvato restituisce <code>null<\/code> (che &#232; falsy in PHP), mentre un valore esplicitamente impostato su &#8220;No&#8221; restituisce <code>0<\/code> o <code>false<\/code>. Comprendere queste sfumature ti eviter&#224; bug sottili nel tuo codice frontend.<\/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-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-import-export-sincronizzazione-json\/\">ACF: Import, Export e Sincronizzazione JSON dei Field Group<\/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>Se hai bisogno di assistenza per integrare i campi ACF nel frontend del tuo sito WordPress, il team di <a href=\"https:\/\/gtechgroup.it\/realizzazione-siti-web\/\">G Tech Group &#232; specializzato nella realizzazione di siti web<\/a> con template personalizzati e visualizzazioni avanzate dei dati. <a href=\"https:\/\/gtechgroup.it\/contatti\/\">Contattaci<\/a> per una consulenza e trasforma i tuoi dati strutturati in pagine web straordinarie.<\/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>Dal Backend al Frontend: Mostrare i Dati ACF Creare campi personalizzati con ACF &#232; solo met&#224; del lavoro. La vera magia avviene quando i dati&hellip;<\/p>\n","protected":false},"author":0,"featured_media":167112,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_seopress_robots_primary_cat":"","_seopress_titles_title":"ACF nel Frontend: Template e Shortcode | Guida","_seopress_titles_desc":"Come visualizzare i campi ACF nel frontend. the_field, get_field, template PHP e shortcode.","_seopress_robots_index":"","footnotes":""},"categories":[1],"tags":[2602,2937,3244,3065,3551,492],"class_list":["post-167168","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-senza-categoria","tag-acf","tag-frontend","tag-shortcode","tag-template","tag-the_field","tag-wordpress"],"_links":{"self":[{"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/posts\/167168","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=167168"}],"version-history":[{"count":0,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/posts\/167168\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/media\/167112"}],"wp:attachment":[{"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/media?parent=167168"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/categories?post=167168"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/tags?post=167168"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}