{"id":1680,"date":"2018-07-18T22:01:58","date_gmt":"2018-07-18T22:01:58","guid":{"rendered":"https:\/\/nicolatimpanaro.it\/sviluppo_software_web\/?p=1680"},"modified":"2022-01-19T09:17:25","modified_gmt":"2022-01-19T09:17:25","slug":"tema-child-personalizzare-i-temi-wordpress","status":"publish","type":"post","link":"https:\/\/nicolatimpanaro.it\/sviluppo_software_web\/tema-child-personalizzare-i-temi-wordpress\/","title":{"rendered":"Tema Child: personalizzare i temi WordPress"},"content":{"rendered":"<h2>WordPress: dal CMS ai temi grafici<\/h2>\n<p>La piattaforma WordPress costituisce il CMS attualmente pi\u00f9 utilizzato al mondo per la creazione di siti web.<br \/>\nLa forza di questa <a href=\"https:\/\/nicolatimpanaro.it\/sviluppo_software_web\/wordpress-cms-open-source\/\">piattaforma <em>open source<\/em><\/a> nasce della possibilit\u00e0 di modificare ed ampliare la struttura del un sito web in base alle esigenze del progetto, sia dal punto di vista funzionale che da quello grafico.<br \/>\nLa sua versatilit\u00e0 e scalabilit\u00e0 ha fatto s\u00ec che nel corso degli anni venissero sviluppati sia innumerevoli plugin per la gestione di altrettante esigenze funzionali che svariati temi grafici per la presentazione dei contenuti.<\/p>\n<h2>WordPress: temi grafici e personalizzazione<\/h2>\n<p>I temi WordPress possono essere completamente gratuiti o a pagamento; il tema a pagamento \u00e8 (solitamente) supportato nel tempo dal suo creatore, sia dal punto di vista di un contatto tecnico online, sia come garanzia di aggiornamenti forniti con cadenza sufficientemente frequente da far s\u00ec che il tema resti allineato con la costante evoluzione del CMS e dei linguaggi. Va detto che molti temi gratuiti sono altrettanto validi ed il loro aggiornamento \u00e8 offerto da anni con ottima frequenza. E\u2019 spesso possibile trovare temi gratuiti ottimamente supportati, offerti in una versione base con limitate funzionalit\u00e0 e successivamente espandibili nel caso in cui si scelga di passare alla versione Pro. Molti temi moderni consentono di modificare lo stile delle pagine attraverso aree apposite poste all\u2019interno del back-end del tema, dando un\u2019ampia libert\u00e0 di azione nella personalizzazione del tema grafico agli utenti che siano in grado di padroneggiare i fogli di stile.<\/p>\n<p>Per quanto un tema possa offrire la possibilit\u00e0 di apportare modifiche grafiche con l\u2019inserimento di widget o attraverso le opzioni di menu e di personalizzazione, ci si potr\u00e0 trovare nella situazione in cui un tema, per essere fortemente customizzato, richieda azioni invasive su aspetti e funzionalit\u00e0, sempre e comunque nel mantenimento dei principi di ordine e struttura all\u2019interno del codice.<\/p>\n<h2>Perch\u00e8 creare un tema Child \u2013 aspetti teorici<\/h2>\n<p>Ogni intervento effettuato in modo diretto ed invasivo su di un tema grafico, implica la modifica dei file che lo compongono. Sar\u00e0 quindi indispensabile agire su porzioni di codice a volte ragguardevoli, sia su elementi di programmazione (PHP) per la modifica delle funzionalit\u00e0, sia sul foglio di stile (CSS) per intervenire sull\u2019aspetto del progetto. La conseguenza immediata sar\u00e0 quella di avere un codice con modifiche a macchie di leopardo, meno ordinato e meno strutturato; una conseguenza successiva sar\u00e0 il rischio di perdere le modifiche effettuate una volta che si dovesse provvedere all\u2019aggiornamento del tema, poich\u00e9 i files aggiornati andrebbero a sovrascrivere quelli da noi modificati.<\/p>\n<p>Tenere traccia delle modifiche apportate ai files per poi ripristinare i nostri interventi sul tema aggiornato, \u00e8 un metodo che richiede un significativo dispendio di tempo e che talvolta non \u00e8 sufficiente ad evitare problemi poich\u00e9 potremmo dover nuovamente adattare le nostre modifiche al nuovo codice aggiornato.<\/p>\n<p>E\u2019 a questo punto che entra in gioco il concetto di <em>tema Child<\/em>.<\/p>\n<p>Modificare un tema WordPress utilizzando un tema Child, offrir\u00e0 alcuni significativi vantaggi:<\/p>\n<p><strong>&#8211; Persistenza delle modifiche<\/strong>: ogni volta che verr\u00e0 eseguito l\u2019aggiornamento del tema principale, le nostre modifiche non verranno sovrascritte poich\u00e9 risiederanno in un diverso folder;<\/p>\n<p><strong>&#8211; Mantenimento di una struttura organizzata, scalabile e sicura<\/strong>: le modifiche al tema originale saranno interamente contenute nel folder del tema Child in base alle nostre esigenze e tecniche di scrittura, in modo da consentire successivi interventi mirati di ampliamento, senza intaccare l\u2019integrit\u00e0 del tema originale e senza quindi rischiare di minarne i requisiti basilari di sicurezza.<\/p>\n<h2>Creazione manuale di un tema Child \u2013 aspetti pratici<\/h2>\n<p>Il tema Child \u00e8 un insieme di files correlati al tema principale, dal quale ereditano impostazioni e funzionalit\u00e0, ma di fatto localizzati in un diverso folder; il tema Child consente di aggiungere o sostituire codice ai corrispondenti files del tema principale (o tema Parent) senza intervenire in alcun modo sul codice dei files originali.<\/p>\n<p>Le intestazioni dei files che compongono il folder del tema Child, codificheranno le direttive che stabiliranno sia il legame con il tema Parent che la facolt\u00e0 di aggiungere e\/o sostituire parti di codice, dal CSS del foglio di stile al PHP con cui sono implementate le funzioni.<\/p>\n<p><strong>Per la creazione manuale di un tema child, sar\u00e0 necessario<\/strong>:<\/p>\n<p><strong>[1] &#8211; creare un nuovo folder<\/strong> nella cartella <em>themes<\/em> della nostra installazione, chiamandolo con <strong>il nome del tema principale seguito dalla dicitura \u201c-child\u201d<\/strong> (es.: \u201cdominio.tld\/wp-config\/themes\/<em>originalthemex-child<\/em>\u201d, ove \u201coriginalthemex\u201d \u00e8 il nome di tema Parent fittizio);<\/p>\n<p><strong>[2] &#8211; creare il file <em>style.css<\/em><\/strong>\u00a0nel nuovo folder (<em>originalthemex-child\/styles.css<\/em>) nel quale verranno incluse le informazioni relative al nuovo tema ed i riferimenti al tema Parent, inserendo un\u2019intestazione simile alla seguente:<br \/>\n<span style=\"font-size: 10pt; color: #808080;\"><br \/>\n\/*<\/span><br \/>\n<span style=\"font-size: 10pt; color: #800000;\">Theme Name: OriginalThemeX Child<\/span><br \/>\n<span style=\"font-size: 10pt; color: #808080;\">Theme URI: https:\/\/originalthemex.tld\/<\/span><br \/>\n<span style=\"font-size: 10pt; color: #808080;\">Author: Nicola Timpanaro<\/span><br \/>\n<span style=\"font-size: 10pt; color: #808080;\">Author URI: https:\/\/nicolatimpanaro.it<\/span><br \/>\n<span style=\"font-size: 10pt; color: #808080;\">Description: Tema Child di OriginalThemeX<\/span><br \/>\n<span style=\"font-size: 10pt; color: #800000;\">Template: originalthemex<\/span><br \/>\n<span style=\"font-size: 10pt; color: #808080;\">Version: 1.0.0<\/span><br \/>\n<span style=\"font-size: 10pt; color: #808080;\">Tags: tag che possono essere applicati al tema, separati dalla virgola<\/span><br \/>\n<span style=\"font-size: 10pt; color: #808080;\">Text Domain: originalthemex-child<\/span><br \/>\n<span style=\"font-size: 10pt; color: #808080;\">*\/<\/span><\/p>\n<p>Il file <em>style.css<\/em> sarebbe di per s\u00e8 sufficiente a permettere l&#8217;attivazione del nuovo tema Child senza tuttavia una reale impaginazione, non avendo ereditando alcuno stile dal tema Parent; affinch\u00e8 questo possa invece avvenire andremo a completare il passo successivo.<\/p>\n<p><strong>[3] &#8211; creare il file <em>functions.php<\/em><\/strong>\u00a0sempre nel nuovo folder (<em>originalthemex-child\/functions.php<\/em>) contenente le istruzioni necessarie ad includere il foglio di stile del tema Parent; ci\u00f2 sar\u00e0 possibile inserendo il seguente codice in testa al file appena creato:<br \/>\n<span style=\"font-size: 10pt; color: #808080;\"><br \/>\n&lt;?php<\/span><br \/>\n<span style=\"font-size: 10pt; color: #808080;\">add_action( &#8216;wp_enqueue_scripts&#8217;, &#8216;upload_parent_style&#8217; );<\/span><br \/>\n<span style=\"font-size: 10pt; color: #808080;\">function upload_parent_style () {<\/span><br \/>\n<span style=\"font-size: 10pt; color: #808080;\">\u00a0 \u00a0wp_enqueue_style( &#8216;parent-style&#8217;, get_template_directory_uri() . &#8216;\/style.css&#8217; );<\/span><br \/>\n<span style=\"font-size: 10pt; color: #808080;\">}<\/span><\/p>\n<p>La corretta compilazione delle voci <span style=\"color: #800000;\"><em>Theme Name<\/em><\/span> e <em><span style=\"color: #800000;\">Template<\/span><\/em> sar\u00e0 fondamentale per stabilire il nome del tema Child ed il template di riferimento (cio\u00e8 il tema Parent); le altre righe saranno facoltative.<\/p>\n<h2>Ultimo passo: l&#8217;attivazione<\/h2>\n<p>Una volta preparata la base del tema Child, sar\u00e0 sufficiente entrare nel pannello amministrativo di WordPress ed attivare il nuovo tema Child come un qualsiasi altro tema (attraverso il menu <em>Aspetto\u2192Temi<\/em>). Se tutto fosse andato a buon fine, ora il tema Child dovrebbe risultare tema attivo, mentre il sito web dovrebbe presentarsi con il medesimo aspetto di prima poich\u00e9 non sarebbero ancora state operate modifiche n\u00e9 nel foglio di stile n\u00e9 nel file funzionale.<br \/>\nSar\u00e0 possibile intervenire anche su altri elementi presenti nella directory principale del tema Parent, copiandoli nel folder del tema Child e modificandoli (ad esempio il file <em>header.php<\/em> per la testata del sito web, il file <em>footer.php<\/em> per il pi\u00e8 pagina, il file <em>single.php<\/em> per la visualizzazione dei singoli post, il file <em>archive.php<\/em> per la visualizzazione dei post di ciascuna categoria, ecc.).<\/p>\n<h2>Tema Child \u2013 soluzioni per problematiche avanzate<\/h2>\n<h4>&#8211; <span style=\"text-decoration: underline;\">Problema 1<\/span>\u00a0: <strong>il codice di una funzione esistente nel tema Parent richiede una modifica<\/strong>.<\/h4>\n<p>Pu\u00f2 verificarsi l\u2019esigenza di sostituire il codice di una funzione gi\u00e0 presente nel tema con una nuova funzione implementata all\u2019interno del file <em>functions.php<\/em> nel tema Child, affinch\u00e9 svolga il compito dell\u2019altra in modo differente. Perch\u00e8 ci\u00f2 sia attuabile \u00e8 necessario che la corrispondente funzione del tema Parent sia stata nativamente dichiarata in maniera condizionale (modalit\u00e0 <em>pluggable<\/em>), utilizzando cio\u00e8 la funzione <em>function_exists<\/em>(..). Vediamo un esempio:<br \/>\n<span style=\"color: #808080; font-size: 10pt;\"><br \/>\n<span style=\"color: #800000;\">if ( ! function_exists( &#8216;originalthemex_info&#8217; ) )<\/span> {<\/span><br \/>\n<span style=\"color: #808080; font-size: 10pt;\">\u00a0 \u00a0function originalthemex_info()<\/span><br \/>\n<span style=\"color: #808080; font-size: 10pt;\">\u00a0 \u00a0 \u00a0 {<\/span><br \/>\n<span style=\"color: #808080; font-size: 10pt;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0[\u2026]<\/span><br \/>\n<span style=\"color: #808080; font-size: 10pt;\">\u00a0 \u00a0 \u00a0 }<\/span><br \/>\n<span style=\"color: #808080; font-size: 10pt;\">}<\/span><br \/>\n<span style=\"color: #808080; font-size: 10pt;\">add_action( &#8216;originalthemex_info&#8217;, &#8216;originalthemex_info&#8217; );<\/span><\/p>\n<p>Prima di caricare la funzione fittizia \u201coriginaltemex_info\u201d del tema Parent, il sistema controlla che non ne esista una con lo stesso nome gi\u00e0 caricata nel flusso di WordPress; se fosse stata sviluppata la nuova versione della funzione \u201coriginalthemex_info\u201d nel tema Child attivo, la condizione <em>function_exists<\/em>(..) posta nel tema Parent impedirebbe il caricamento della funzione originale in essa contenuta; resterebbe pertanto attiva la funzione personalizzata creata nel file <em>functions.php<\/em> del tema Child, pronta a svolgere il proprio compito nella modalit\u00e0 prevista dal suo codice modificato.<\/p>\n<p>Diversamente, se non fosse stata utilizzata la condizione\u00a0<em>function_exists<\/em>(..) nel tema Parent, sarebbe indispensabile agire sul parametro di priorit\u00e0 all&#8217;interno della chiamata <em>add_action<\/em> (che provvede ad agganciare l&#8217;esecuzione di una funzione al verificarsi di un certo evento di sistema o\u00a0<em>hook<\/em>), una volta creata la nuova funzione nel tema Child. A tal proposito, nel prossimo punto verr\u00e0 affrontato un problema che richieder\u00e0 una modifica della priorit\u00e0 di esecuzione di\u00a0una funzione all&#8217;interno dell&#8217;<em>action hook<\/em>.<\/p>\n<h4>&#8211; <span style=\"text-decoration: underline;\">Problema 2<\/span>\u00a0: <strong>il foglio di stile del tema Parent sovrascrive quello del tema Child<\/strong>.<\/h4>\n<p>La successione di caricamento dei files nel flusso di WordPress, prevede che il foglio di stile <em>style.css<\/em> del tema Child venga caricato per primo e che durante la lettura dell\u2019intestazione esso vada immediatamente a recuperare il codice del file <em>style.css<\/em> del tema Parent; il contenuto di quest\u2019ultimo verr\u00e0 letto interamente prima dell\u2019altro cos\u00ec da permettere alle modifiche del nuovo foglio di stile (tema Child) di intervenire per ultime nel processo, sovrascrivendo legittimamente le precedenti. Il file <em>functions.php<\/em> del tema Child sar\u00e0 invece letto interamente prima della chiamata del tema <em>functions.php<\/em> del tema Parent, ma non ne sostituir\u00e0 gli elementi bens\u00ec vedr\u00e0 gli elementi del file del tema Parent aggiungersi a quelli definiti nel file del tema Child. Se le funzioni presenti nel tema Parent non fossero state dichiarate in modalit\u00e0 <em>pluggable<\/em>, si potrebbero verificare sovrascritture che andrebbero ad inficiare la creazione delle nuove funzionalit\u00e0 cos\u00ec come le avremmo volute.<br \/>\nSar\u00e0 quindi possibile che alcuni elementi del tema Parent, caricati interamente solo successivamente alla lettura completa di quelli del tema Child, causino la perdita delle istruzioni personalizzate da noi inserite.<br \/>\nIn questi casi, si render\u00e0 necessario agire sull\u2019ordine di lettura degli elementi, in modo tale che il contenuto del file creato nel tema Child (prendiamo lo stesso file\u00a0<em>style.css<\/em> per fare un semplice esempio con elementi gi\u00e0 visti) venga letto sempre dopo il contenuto del corrispondente file\u00a0del tema Parent.<br \/>\nPer far ci\u00f2, sar\u00e0 necessario intervenire sul file <em>functions.php<\/em> nel tema Child (nel nostro esempio, sulla chiamata del file\u00a0<em>style.css<\/em>):<br \/>\n<span style=\"font-size: 10pt; color: #808080;\"><br \/>\nadd_action( &#8216;wp_enqueue_scripts&#8217;, &#8216;originalthemex_child_style&#8217;, <span style=\"color: #800000;\">11<\/span> );<\/span><br \/>\n<span style=\"font-size: 10pt; color: #808080;\">function originalthemex_child_style() {<\/span><br \/>\n<span style=\"font-size: 10pt; color: #808080;\">\u00a0 \u00a0wp_enqueue_style( &#8216;child-style&#8217;, get_stylesheet_uri() );<\/span><br \/>\n<span style=\"font-size: 10pt; color: #808080;\">}<\/span><\/p>\n<p>Le istruzioni sopra indicate nel nostro esempio puramente fittizio, faranno s\u00ec che il tema Child venga eseguito con priorit\u00e0 \u2018<span style=\"color: #800000;\">11<\/span>\u2019 (il terzo parametro che \u00e8 stato inserito nella chiamata dell\u2019<em>action hook<\/em>) quindi sempre dopo gli altri elementi del sistema (con priorit\u00e0 di default pari a \u201810\u2019).<\/p>\n<p><script type=\"application\/ld+json\">\n{\n  \"@context\" : \"http:\/\/schema.org\",\n  \"@type\" : \"Article\",\n  \"url\" : \"https:\/\/nicolatimpanaro.it\/sviluppo_software_web\/tema-child-personalizzare-i-temi-wordpress\/\",\n  \"name\" : \"Tema Child: personalizzare i temi WordPress\",\n  \"author\" : {\n    \"@type\" : \"Person\",\n    \"name\" : \"Nicola Timpanaro\"\n  },\n  \"headline\": \"Creazione tema Child per sito web WordPress\",\n  \"publisher\": {\"@type\": \"Organization\", \"name\": \"Nicola Timpanaro - Sviluppo Software ed Attivit\u00e0 Web\", \"logo\": \"https:\/\/nicolatimpanaro.it\/sviluppo_software_web\/sx-galaxy-eye-2\/\"},\n\"datePublished\" : \"2018-07-18\",\n  \"image\" : \"https:\/\/nicolatimpanaro.it\/sviluppo_software_web\/wp-content\/uploads\/2018\/07\/Themes-Child-Parent.jpg\"},\n  \"articleSection\" : \"Applicazioni Web\",\n\"articleBody\" : \"WordPress: dal CMS ai temi grafici<\/H2>\nWordpress: dal CMS ai temi grafici\nLa piattaforma WordPress costituisce il CMS attualmente pi\u00f9 utilizzato al mondo per la creazione di siti web.\nLa forza di questa piattaforma open source nasce della possibilit\u00e0 di modificare ed ampliare la struttura del un sito web in base alle esigenze del progetto, sia dal punto di vista funzionale che da quello grafico.\nLa sua versatilit\u00e0 e scalabilit\u00e0 ha fatto s\u00ec che nel corso degli anni venissero sviluppati sia innumerevoli plugin per la gestione di altrettante esigenze funzionali che svariati temi grafici per la presentazione dei contenuti.<\/p>\n<p>WordPress: temi grafici e personalizzazione\nI temi WordPress possono essere completamente gratuiti o a pagamento; il tema a pagamento \u00e8 (solitamente) supportato nel tempo dal suo creatore, sia dal punto di vista di un contatto tecnico online, sia come garanzia di aggiornamenti forniti con cadenza sufficientemente frequente da far s\u00ec che il tema resti allineato con la costante evoluzione del CMS e dei linguaggi. Va detto che molti temi gratuiti sono altrettanto validi ed il loro aggiornamento \u00e8 offerto da anni con ottima frequenza. E\u2019 spesso possibile trovare temi gratuiti ottimamente supportati, offerti in una versione base con limitate funzionalit\u00e0 e successivamente espandibili nel caso in cui si scelga di passare alla versione Pro. Molti temi moderni consentono di modificare lo stile delle pagine attraverso aree apposite poste all\u2019interno del back-end del tema, dando un\u2019ampia libert\u00e0 di azione nella personalizzazione del tema grafico agli utenti che siano in grado di padroneggiare i fogli di stile.<\/p>\n<p>Per quanto un tema possa offrire la possibilit\u00e0 di apportare modifiche grafiche con l\u2019inserimento di widget o attraverso le opzioni di menu e di personalizzazione, ci si potr\u00e0 trovare nella situazione in cui un tema, per essere fortemente customizzato, richieda azioni invasive su aspetti e funzionalit\u00e0, sempre e comunque nel mantenimento dei principi di ordine e struttura all\u2019interno del codice.<\/p>\n<p>Perch\u00e8 creare un tema Child \u2013 aspetti teorici\nOgni intervento effettuato in modo diretto ed invasivo su di un tema grafico, implica la modifica dei file che lo compongono. Sar\u00e0 quindi indispensabile agire su porzioni di codice a volte ragguardevoli, sia su elementi di programmazione (PHP) per la modifica delle funzionalit\u00e0, sia sul foglio di stile (CSS) per intervenire sull\u2019aspetto del progetto. La conseguenza immediata sar\u00e0 quella di avere un codice con modifiche a macchie di leopardo, meno ordinato e meno strutturato; una conseguenza successiva sar\u00e0 il rischio di perdere le modifiche effettuate una volta che si dovesse provvedere all\u2019aggiornamento del tema, poich\u00e9 i files aggiornati andrebbero a sovrascrivere quelli da noi modificati.<\/p>\n<p>Tenere traccia delle modifiche apportate ai files per poi ripristinare i nostri interventi sul tema aggiornato, \u00e8 un metodo che richiede un significativo dispendio di tempo e che talvolta non \u00e8 sufficiente ad evitare problemi poich\u00e9 potremmo dover nuovamente adattare le nostre modifiche al nuovo codice aggiornato.<\/p>\n<p>E\u2019 a questo punto che entra in gioco il concetto di tema Child.<\/p>\n<p>Modificare un tema WordPress utilizzando un tema Child, offrir\u00e0 alcuni significativi vantaggi:<\/p>\n<p>- Persistenza delle modifiche: ogni volta che verr\u00e0 eseguito l\u2019aggiornamento del tema principale, le nostre modifiche non verranno sovrascritte poich\u00e9 risiederanno in un diverso folder;<\/p>\n<p>- Mantenimento di una struttura organizzata, scalabile e sicura: le modifiche al tema originale saranno interamente contenute nel folder del tema Child in base alle nostre esigenze e tecniche di scrittura, in modo da consentire successivi interventi mirati di ampliamento, senza intaccare l\u2019integrit\u00e0 del tema originale e senza quindi rischiare di minarne i requisiti basilari di sicurezza.<\/p>\n<p>Creazione manuale di un tema Child \u2013 aspetti pratici\nIl tema Child \u00e8 un insieme di files correlati al tema principale, dal quale ereditano impostazioni e funzionalit\u00e0, ma di fatto localizzati in un diverso folder; il tema Child consente di aggiungere o sostituire codice ai corrispondenti files del tema principale (o tema Parent) senza intervenire in alcun modo sul codice dei files originali.<\/p>\n<p>Le intestazioni dei files che compongono il folder del tema Child, codificheranno le direttive che stabiliranno sia il legame con il tema Parent che la facolt\u00e0 di aggiungere e\/o sostituire parti di codice, dal CSS del foglio di stile al PHP con cui sono implementate le funzioni.<\/p>\n<p>Per la creazione manuale di un tema child, sar\u00e0 necessario:<\/p>\n<p>[1] - creare un nuovo folder nella cartella themes della nostra installazione, chiamandolo con il nome del tema principale seguito dalla dicitura \u201c-child\u201d (es.: \u201cdominio.tld\/wp-config\/themes\/originalthemex-child\u201d, ove \u201coriginalthemex\u201d \u00e8 il nome di tema Parent fittizio);<\/p>\n<p>[2] - creare il file style.css\u00a0nel nuovo folder (originalthemex-child\/styles.css) nel quale verranno incluse le informazioni relative al nuovo tema ed i riferimenti al tema Parent, inserendo un\u2019intestazione simile alla seguente:<\/p>\n<p>\/*\nTheme Name: OriginalThemeX Child\nTheme URI: https:\/\/originalthemex.tld\/\nAuthor: Nicola Timpanaro\nAuthor URI: https:\/\/nicolatimpanaro.it\nDescription: Tema Child di OriginalThemeX\nTemplate: originalthemex\nVersion: 1.0.0\nTags: tag che possono essere applicati al tema, separati dalla virgola\nText Domain: originalthemex-child\n*\/<\/p>\n<p>Il file style.css sarebbe di per s\u00e8 sufficiente a permettere l'attivazione del nuovo tema Child senza tuttavia avere una reale impaginazione, non avendo ereditando alcuno stile dal tema Parent; affinch\u00e8 questo possa invece avvenire andremo a completare il passo successivo.<\/p>\n<p>[3] - creare il file functions.php\u00a0sempre nel nuovo folder (originalthemex-child\/functions.php) contenente le istruzioni necessarie ad includere il foglio di stile del tema Parent; ci\u00f2 sar\u00e0 possibile inserendo il seguente codice in testa al file appena creato:<\/p>\n<p><?php\nadd_action( 'wp_enqueue_scripts', 'upload_parent_style' );\nfunction upload_parent_style () {\n\u00a0 \u00a0wp_enqueue_style( 'parent-style', get_template_directory_uri() . '\/style.css' );\n}\n\nLa corretta compilazione delle voci Theme Name e Template sar\u00e0 fondamentale per stabilire il nome del tema Child ed il template di riferimento (cio\u00e8 il tema Parent); le altre righe saranno facoltative.\n\nUltimo passo: l'attivazione\nUna volta preparata la base del tema Child, sar\u00e0 sufficiente entrare nel pannello amministrativo di WordPress ed attivare il nuovo tema Child come un qualsiasi altro tema (attraverso il menu Aspetto\u2192Temi). Se tutto fosse andato a buon fine, ora il tema Child dovrebbe risultare tema attivo, mentre il sito web dovrebbe presentarsi con il medesimo aspetto di prima poich\u00e9 non sarebbero ancora state operate modifiche n\u00e9 nel foglio di stile n\u00e9 nel file funzionale.\nSar\u00e0 possibile intervenire anche su altri elementi presenti nella directory principale del tema Parent, copiandoli nel folder del tema Child e modificandoli (ad esempio il file header.php per la testata del sito web, il file footer.php per il pi\u00e8 pagina, il file single.php per la visualizzazione dei singoli post, il file archive.php per la visualizzazione dei post di ciascuna categoria, ecc.).\n\nTema Child \u2013 soluzioni per problematiche avanzate\n- Problema 1\u00a0: il codice di una funzione esistente nel tema Parent richiede una modifica.\nPu\u00f2 verificarsi l\u2019esigenza di sostituire il codice di una funzione gi\u00e0 presente nel tema con una nuova funzione implementata all\u2019interno del file functions.php nel tema Child, affinch\u00e9 svolga il compito dell\u2019altra in modo differente. Perch\u00e8 ci\u00f2 sia attuabile \u00e8 necessario che la corrispondente funzione del tema Parent sia stata nativamente dichiarata in maniera condizionale (modalit\u00e0 pluggable), utilizzando cio\u00e8 la funzione function_exists(..). Vediamo un esempio:\n\nif ( ! function_exists( 'originalthemex_info' ) ) {\n\u00a0 \u00a0function originalthemex_info()\n\u00a0 \u00a0 \u00a0 {\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0[\u2026]\n\u00a0 \u00a0 \u00a0 }\n}\nadd_action( 'originalthemex_info', 'originalthemex_info' );\n\nPrima di caricare la funzione fittizia \u201coriginaltemex_info\u201d del tema Parent, il sistema controlla che non ne esista una con lo stesso nome gi\u00e0 caricata nel flusso di WordPress; se fosse stata sviluppata la nuova versione della funzione \u201coriginalthemex_info\u201d nel tema Child attivo, la condizione function_exists(..) posta nel tema Parent impedirebbe il caricamento della funzione originale in essa contenuta; resterebbe pertanto attiva la funzione personalizzata creata nel file functions.php del tema Child, pronta a svolgere il proprio compito nella modalit\u00e0 prevista dal suo codice modificato.\n\nDiversamente, se non fosse stata utilizzata la condizione\u00a0function_exists(..) nel tema Parent, sarebbe indispensabile agire sul parametro di priorit\u00e0 all'interno della chiamata add_action (che provvede ad agganciare l'esecuzione di una funzione al verificarsi di un certo evento di sistema o\u00a0hook), una volta creata la nuova funzione nel tema Child. A tal proposito, nel prossimo punto verr\u00e0 affrontato un problema che richieder\u00e0 una modifica della priorit\u00e0 di esecuzione di\u00a0una funzione all'interno dell'action hook.\n\n- Problema 2\u00a0: il foglio di stile del tema Parent sovrascrive quello del tema Child.\nLa successione di caricamento dei files nel flusso di WordPress, prevede che il foglio di stile style.css del tema Child venga caricato per primo e che durante la lettura dell\u2019intestazione esso vada immediatamente a recuperare il codice del file style.css del tema Parent; il contenuto di quest\u2019ultimo verr\u00e0 letto interamente prima dell\u2019altro cos\u00ec da permettere alle modifiche del nuovo foglio di stile (tema Child) di intervenire per ultime nel processo, sovrascrivendo legittimamente le precedenti. Il file functions.php del tema Child sar\u00e0 invece letto interamente prima della chiamata del tema functions.php del tema Parent, ma non ne sostituir\u00e0 gli elementi bens\u00ec vedr\u00e0 gli elementi del file del tema Parent aggiungersi a quelli definiti nel file del tema Child. Se le funzioni presenti nel tema Parent non fossero state dichiarate in modalit\u00e0 pluggable, si potrebbero verificare sovrascritture che andrebbero ad inficiare la creazione delle nuove funzionalit\u00e0 cos\u00ec come le avremmo volute.\nSar\u00e0 quindi possibile che alcuni elementi del tema Parent, caricati interamente solo successivamente alla lettura completa di quelli del tema Child, causino la perdita delle istruzioni personalizzate da noi inserite.\nIn questi casi, si render\u00e0 necessario agire sull\u2019ordine di lettura degli elementi, in modo tale che il contenuto del file creato nel tema Child (prendiamo ad esempio lo stesso file\u00a0style.css) venga letto sempre dopo il contenuto del corrispondente file\u00a0del tema Parent.\nPer far ci\u00f2, sar\u00e0 necessario intervenire sul file functions.php nel tema Child (nel nostro esempio, sulla chiamata del file\u00a0style.css):\n\nadd_action( 'wp_enqueue_scripts', 'originalthemex_child_style', 11 );\nfunction originalthemex_child_style() {\n\u00a0 \u00a0wp_enqueue_style( 'child-style', get_stylesheet_uri() );\n}\n\nLe istruzioni sopra indicate, faranno s\u00ec che il tema Child venga eseguito con priorit\u00e0 \u201811\u2019 (il terzo parametro che \u00e8 stato inserito nella chiamata dell\u2019action hook) quindi sempre dopo gli altri elementi del sistema (con priorit\u00e0 di default pari a \u201810\u2019).\"\n}\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>WordPress: dal CMS ai temi grafici La piattaforma WordPress costituisce il CMS attualmente pi\u00f9 utilizzato al mondo per la creazione di siti web. La forza di questa piattaforma open source &#8230;<\/p>\n","protected":false},"author":1,"featured_media":2003,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[45],"tags":[11,53,51,52,50,47],"class_list":["post-1680","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-applicazioni-web","tag-css","tag-foglio-di-stile","tag-personalizzare","tag-style","tag-tema-child","tag-wordpress"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Tema Child: personalizzare i temi WordPress - Progettazione e sviluppo software Web<\/title>\n<meta name=\"description\" content=\"Teoria e pratica per la creazione di un tema Child in un sito web WordPress e soluzioni ad alcuni dei problemi pi\u00f9 ostici e comuni.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/nicolatimpanaro.it\/sviluppo_software_web\/tema-child-personalizzare-i-temi-wordpress\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Tema Child: personalizzare i temi WordPress - Progettazione e sviluppo software Web\" \/>\n<meta property=\"og:description\" content=\"Teoria e pratica per la creazione di un tema Child in un sito web WordPress e soluzioni ad alcuni dei problemi pi\u00f9 ostici e comuni.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/nicolatimpanaro.it\/sviluppo_software_web\/tema-child-personalizzare-i-temi-wordpress\/\" \/>\n<meta property=\"og:site_name\" content=\"Progettazione e sviluppo software Web\" \/>\n<meta property=\"article:published_time\" content=\"2018-07-18T22:01:58+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-01-19T09:17:25+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/nicolatimpanaro.it\/sviluppo_software_web\/wp-content\/uploads\/2021\/07\/WP-tema-child___Nicola-Timpanaro.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"657\" \/>\n\t<meta property=\"og:image:height\" content=\"354\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Nick\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"Nick\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"14 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/nicolatimpanaro.it\\\/sviluppo_software_web\\\/tema-child-personalizzare-i-temi-wordpress\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/nicolatimpanaro.it\\\/sviluppo_software_web\\\/tema-child-personalizzare-i-temi-wordpress\\\/\"},\"author\":{\"name\":\"Nick\",\"@id\":\"https:\\\/\\\/nicolatimpanaro.it\\\/sviluppo_software_web\\\/#\\\/schema\\\/person\\\/377c5de64059d718d077f5f0d2e1df34\"},\"headline\":\"Tema Child: personalizzare i temi WordPress\",\"datePublished\":\"2018-07-18T22:01:58+00:00\",\"dateModified\":\"2022-01-19T09:17:25+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/nicolatimpanaro.it\\\/sviluppo_software_web\\\/tema-child-personalizzare-i-temi-wordpress\\\/\"},\"wordCount\":1699,\"image\":{\"@id\":\"https:\\\/\\\/nicolatimpanaro.it\\\/sviluppo_software_web\\\/tema-child-personalizzare-i-temi-wordpress\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/nicolatimpanaro.it\\\/sviluppo_software_web\\\/wp-content\\\/uploads\\\/2021\\\/07\\\/WP-tema-child___Nicola-Timpanaro.jpg\",\"keywords\":[\"css\",\"foglio di stile\",\"personalizzare\",\"style\",\"tema Child\",\"wordpress\"],\"articleSection\":[\"Applicazioni Web\"],\"inLanguage\":\"it-IT\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/nicolatimpanaro.it\\\/sviluppo_software_web\\\/tema-child-personalizzare-i-temi-wordpress\\\/\",\"url\":\"https:\\\/\\\/nicolatimpanaro.it\\\/sviluppo_software_web\\\/tema-child-personalizzare-i-temi-wordpress\\\/\",\"name\":\"Tema Child: personalizzare i temi WordPress - Progettazione e sviluppo software Web\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/nicolatimpanaro.it\\\/sviluppo_software_web\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/nicolatimpanaro.it\\\/sviluppo_software_web\\\/tema-child-personalizzare-i-temi-wordpress\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/nicolatimpanaro.it\\\/sviluppo_software_web\\\/tema-child-personalizzare-i-temi-wordpress\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/nicolatimpanaro.it\\\/sviluppo_software_web\\\/wp-content\\\/uploads\\\/2021\\\/07\\\/WP-tema-child___Nicola-Timpanaro.jpg\",\"datePublished\":\"2018-07-18T22:01:58+00:00\",\"dateModified\":\"2022-01-19T09:17:25+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/nicolatimpanaro.it\\\/sviluppo_software_web\\\/#\\\/schema\\\/person\\\/377c5de64059d718d077f5f0d2e1df34\"},\"description\":\"Teoria e pratica per la creazione di un tema Child in un sito web WordPress e soluzioni ad alcuni dei problemi pi\u00f9 ostici e comuni.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/nicolatimpanaro.it\\\/sviluppo_software_web\\\/tema-child-personalizzare-i-temi-wordpress\\\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/nicolatimpanaro.it\\\/sviluppo_software_web\\\/tema-child-personalizzare-i-temi-wordpress\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/nicolatimpanaro.it\\\/sviluppo_software_web\\\/tema-child-personalizzare-i-temi-wordpress\\\/#primaryimage\",\"url\":\"https:\\\/\\\/nicolatimpanaro.it\\\/sviluppo_software_web\\\/wp-content\\\/uploads\\\/2021\\\/07\\\/WP-tema-child___Nicola-Timpanaro.jpg\",\"contentUrl\":\"https:\\\/\\\/nicolatimpanaro.it\\\/sviluppo_software_web\\\/wp-content\\\/uploads\\\/2021\\\/07\\\/WP-tema-child___Nicola-Timpanaro.jpg\",\"width\":657,\"height\":354},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/nicolatimpanaro.it\\\/sviluppo_software_web\\\/tema-child-personalizzare-i-temi-wordpress\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/nicolatimpanaro.it\\\/sviluppo_software_web\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Tema Child: personalizzare i temi WordPress\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/nicolatimpanaro.it\\\/sviluppo_software_web\\\/#website\",\"url\":\"https:\\\/\\\/nicolatimpanaro.it\\\/sviluppo_software_web\\\/\",\"name\":\"Progettazione e sviluppo software Web\",\"description\":\"Lo spazio che unisce le tue idee ed il web\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/nicolatimpanaro.it\\\/sviluppo_software_web\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/nicolatimpanaro.it\\\/sviluppo_software_web\\\/#\\\/schema\\\/person\\\/377c5de64059d718d077f5f0d2e1df34\",\"name\":\"Nick\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/812436cfb0ccf2279eaffe2023fbbb8d031cd387cb9f8c38c45b9db47e78455f?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/812436cfb0ccf2279eaffe2023fbbb8d031cd387cb9f8c38c45b9db47e78455f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/812436cfb0ccf2279eaffe2023fbbb8d031cd387cb9f8c38c45b9db47e78455f?s=96&d=mm&r=g\",\"caption\":\"Nick\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Tema Child: personalizzare i temi WordPress - Progettazione e sviluppo software Web","description":"Teoria e pratica per la creazione di un tema Child in un sito web WordPress e soluzioni ad alcuni dei problemi pi\u00f9 ostici e comuni.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/nicolatimpanaro.it\/sviluppo_software_web\/tema-child-personalizzare-i-temi-wordpress\/","og_locale":"it_IT","og_type":"article","og_title":"Tema Child: personalizzare i temi WordPress - Progettazione e sviluppo software Web","og_description":"Teoria e pratica per la creazione di un tema Child in un sito web WordPress e soluzioni ad alcuni dei problemi pi\u00f9 ostici e comuni.","og_url":"https:\/\/nicolatimpanaro.it\/sviluppo_software_web\/tema-child-personalizzare-i-temi-wordpress\/","og_site_name":"Progettazione e sviluppo software Web","article_published_time":"2018-07-18T22:01:58+00:00","article_modified_time":"2022-01-19T09:17:25+00:00","og_image":[{"width":657,"height":354,"url":"https:\/\/nicolatimpanaro.it\/sviluppo_software_web\/wp-content\/uploads\/2021\/07\/WP-tema-child___Nicola-Timpanaro.jpg","type":"image\/jpeg"}],"author":"Nick","twitter_card":"summary_large_image","twitter_misc":{"Scritto da":"Nick","Tempo di lettura stimato":"14 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/nicolatimpanaro.it\/sviluppo_software_web\/tema-child-personalizzare-i-temi-wordpress\/#article","isPartOf":{"@id":"https:\/\/nicolatimpanaro.it\/sviluppo_software_web\/tema-child-personalizzare-i-temi-wordpress\/"},"author":{"name":"Nick","@id":"https:\/\/nicolatimpanaro.it\/sviluppo_software_web\/#\/schema\/person\/377c5de64059d718d077f5f0d2e1df34"},"headline":"Tema Child: personalizzare i temi WordPress","datePublished":"2018-07-18T22:01:58+00:00","dateModified":"2022-01-19T09:17:25+00:00","mainEntityOfPage":{"@id":"https:\/\/nicolatimpanaro.it\/sviluppo_software_web\/tema-child-personalizzare-i-temi-wordpress\/"},"wordCount":1699,"image":{"@id":"https:\/\/nicolatimpanaro.it\/sviluppo_software_web\/tema-child-personalizzare-i-temi-wordpress\/#primaryimage"},"thumbnailUrl":"https:\/\/nicolatimpanaro.it\/sviluppo_software_web\/wp-content\/uploads\/2021\/07\/WP-tema-child___Nicola-Timpanaro.jpg","keywords":["css","foglio di stile","personalizzare","style","tema Child","wordpress"],"articleSection":["Applicazioni Web"],"inLanguage":"it-IT"},{"@type":"WebPage","@id":"https:\/\/nicolatimpanaro.it\/sviluppo_software_web\/tema-child-personalizzare-i-temi-wordpress\/","url":"https:\/\/nicolatimpanaro.it\/sviluppo_software_web\/tema-child-personalizzare-i-temi-wordpress\/","name":"Tema Child: personalizzare i temi WordPress - Progettazione e sviluppo software Web","isPartOf":{"@id":"https:\/\/nicolatimpanaro.it\/sviluppo_software_web\/#website"},"primaryImageOfPage":{"@id":"https:\/\/nicolatimpanaro.it\/sviluppo_software_web\/tema-child-personalizzare-i-temi-wordpress\/#primaryimage"},"image":{"@id":"https:\/\/nicolatimpanaro.it\/sviluppo_software_web\/tema-child-personalizzare-i-temi-wordpress\/#primaryimage"},"thumbnailUrl":"https:\/\/nicolatimpanaro.it\/sviluppo_software_web\/wp-content\/uploads\/2021\/07\/WP-tema-child___Nicola-Timpanaro.jpg","datePublished":"2018-07-18T22:01:58+00:00","dateModified":"2022-01-19T09:17:25+00:00","author":{"@id":"https:\/\/nicolatimpanaro.it\/sviluppo_software_web\/#\/schema\/person\/377c5de64059d718d077f5f0d2e1df34"},"description":"Teoria e pratica per la creazione di un tema Child in un sito web WordPress e soluzioni ad alcuni dei problemi pi\u00f9 ostici e comuni.","breadcrumb":{"@id":"https:\/\/nicolatimpanaro.it\/sviluppo_software_web\/tema-child-personalizzare-i-temi-wordpress\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/nicolatimpanaro.it\/sviluppo_software_web\/tema-child-personalizzare-i-temi-wordpress\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/nicolatimpanaro.it\/sviluppo_software_web\/tema-child-personalizzare-i-temi-wordpress\/#primaryimage","url":"https:\/\/nicolatimpanaro.it\/sviluppo_software_web\/wp-content\/uploads\/2021\/07\/WP-tema-child___Nicola-Timpanaro.jpg","contentUrl":"https:\/\/nicolatimpanaro.it\/sviluppo_software_web\/wp-content\/uploads\/2021\/07\/WP-tema-child___Nicola-Timpanaro.jpg","width":657,"height":354},{"@type":"BreadcrumbList","@id":"https:\/\/nicolatimpanaro.it\/sviluppo_software_web\/tema-child-personalizzare-i-temi-wordpress\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/nicolatimpanaro.it\/sviluppo_software_web\/"},{"@type":"ListItem","position":2,"name":"Tema Child: personalizzare i temi WordPress"}]},{"@type":"WebSite","@id":"https:\/\/nicolatimpanaro.it\/sviluppo_software_web\/#website","url":"https:\/\/nicolatimpanaro.it\/sviluppo_software_web\/","name":"Progettazione e sviluppo software Web","description":"Lo spazio che unisce le tue idee ed il web","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/nicolatimpanaro.it\/sviluppo_software_web\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Person","@id":"https:\/\/nicolatimpanaro.it\/sviluppo_software_web\/#\/schema\/person\/377c5de64059d718d077f5f0d2e1df34","name":"Nick","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/secure.gravatar.com\/avatar\/812436cfb0ccf2279eaffe2023fbbb8d031cd387cb9f8c38c45b9db47e78455f?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/812436cfb0ccf2279eaffe2023fbbb8d031cd387cb9f8c38c45b9db47e78455f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/812436cfb0ccf2279eaffe2023fbbb8d031cd387cb9f8c38c45b9db47e78455f?s=96&d=mm&r=g","caption":"Nick"}}]}},"_links":{"self":[{"href":"https:\/\/nicolatimpanaro.it\/sviluppo_software_web\/wp-json\/wp\/v2\/posts\/1680","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nicolatimpanaro.it\/sviluppo_software_web\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nicolatimpanaro.it\/sviluppo_software_web\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nicolatimpanaro.it\/sviluppo_software_web\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/nicolatimpanaro.it\/sviluppo_software_web\/wp-json\/wp\/v2\/comments?post=1680"}],"version-history":[{"count":50,"href":"https:\/\/nicolatimpanaro.it\/sviluppo_software_web\/wp-json\/wp\/v2\/posts\/1680\/revisions"}],"predecessor-version":[{"id":2075,"href":"https:\/\/nicolatimpanaro.it\/sviluppo_software_web\/wp-json\/wp\/v2\/posts\/1680\/revisions\/2075"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nicolatimpanaro.it\/sviluppo_software_web\/wp-json\/wp\/v2\/media\/2003"}],"wp:attachment":[{"href":"https:\/\/nicolatimpanaro.it\/sviluppo_software_web\/wp-json\/wp\/v2\/media?parent=1680"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nicolatimpanaro.it\/sviluppo_software_web\/wp-json\/wp\/v2\/categories?post=1680"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nicolatimpanaro.it\/sviluppo_software_web\/wp-json\/wp\/v2\/tags?post=1680"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}