Come e perché usare i temi child di WordPress

ATTENZIONE: questo articolo è stato scritto oltre un anno fa, ed i contenuti potrebbero non essere più validi o compatibili. Sei pregato di tenerne conto, e se hai informazioni in merito di segnalarmele, grazie.

Come e perché usare i temi Child di WordPress

Sicuramente, tra le caratteristiche introdotte con WordPress 3.0, i temi child di WordPress sono stati una piccola rivoluzione del modo di lavorare di tutti quelli che si occupano della realizzazione di blog e siti con WordPress, sia amatorialmente che professionalmente.

L’uso di un tema child diventa fondamentale quando si vogliono personalizzare temi di terze parti. I temo child permettono di personalizzare un tema senza dover modificare il tema originale.

Così facendo, al tema originale possono essere applicati tutti gli aggiornamenti del caso, spesso sacrosanti per la sicurezza ed il buon funzionamento dello stesso, senza perdere tutte le modifiche estetiche e funzionali effettuate, che rimangono nel tema child.

Non aggiornare un tema, per non perdere eventuali personalizzazioni, potrebbe essere la causa di importanti problemi di sicurezza.

Il concetto è semplice: il tema originale (genitore) rimane intatto come mamma l’ha fatto. Il tema child (figlio) eredita tutte le caratteristiche del tema originale, ma queste possono essere modificate, personalizzate o integrate a piacimento.

Le modifiche effettuate sul tema figlio vanno a sovrapporsi alle istruzioni originali del tema genitore, senza che questo venga modificato in alcun modo.

Possono essere semplicemente delle istruzioni CSS o anche interi file del template, come ad esempio l’header.php per la testata e single.php per l’articolo singolo.

In linea di massima, qualsiasi cosa modificheremo nel tema child andrà a sovrapporsi all’equivalente del tema genitore.

Scegliere il giusto tema per WordPress

Prima di iniziare a vedere i temi child, è bene soffermarsi sulla scelta del tema.

Il  tema per WordPress il più delle volte lo si sceglie per lo più per motivi estetici, e non si approfondiscono molto le caratteristiche funzionali.

Per capirci meglio, se nel WordPress prevediamo di utilizzare WooCommerce, è bene che il tema sia dichiaratamente compatibile con il noto plugin di e-commerce. Idem se prevediamo di realizzare un sito multilingua con WPML, anche questa è una compatibilità importante da verificare.

Alcuni temi, anche premium, non sono compatibili con i temi child, nonostante siano passati degli anni dalla loro introduzione.

La compatibilità o meno di un tema con l’utilizzo dei temi child raramente è evidenziata, ma se ci sono problemi in questo senso di solito sono facilmente individuabili nell’immancabile forum di supporto del tema, o nei commenti, grazie alle segnalazioni degli utilizzatori.

Anche il changelog del tema offre spesso indizi importanti.

Nel dubbio che un tema per WordPress non funzioni con i temi child, il consiglio più saggio è quello di passare oltre.

Perché usare un tema child di WordPress

In pratica l’ho già scritto, ma ci riprovo in altro modo.

Mettiamo che dopo tanto vagliare abbiamo individuato il tema giusto per il nostro blog, ma che vogliamo personalizzarlo molto, per esigenze estetiche o funzionali. Dopo settimane di duro lavoro,  di grafica e di codice, decidiamo di pubblicare il tutto per il piacere del mondo. È decisamente appagante mettere on line un nuovo sito.

Metti però che dopo qualche tempo gli sviluppatori aggiornano il tema originale. Noi troviamo il nostro bell’avviso in bacheca e lanciamo l’aggiornamento, così come facciamo spesso automaticamente anche con i plugin o con lo stesso WordPress. Magari senza fare un saggio backup.

Ecco,  in pochi secondi tutto il nostro lavoro di personalizzazione verrà cancellato!

Cosa si fa allora, non si aggiorna mai il tema? Sconsigliabile, gli aggiornamenti dei temi portano sì migliorie estetiche e funzionali, ma spesso sono anche aggiornamenti di sicurezza.

Utilizzando un tema child non si corre alcun rischio, in caso di aggiornamenti le nostre modifiche non vengono assolutamente toccate.

Guida rapida per creare un tema child in WordPress

1. La cartella per il nuovo tema child.

Da terminale o dal programma ftp si crea una cartella, con un nome a piacere, nella posizione canonica dove solitamente sono i temi di WordPress, ossia wp-content/themes. Conviene per comodità dare un nome alla cartella che riporti al nome del tema che vogliamo utilizzare come tema genitore. Liberiamo la fantasia.

2. Il primo file del nuovo tema child.

La prima cosa da fare nella cartella del nuovo tema è la creazione del file style.css. Si potrebbe tranquillamente fare una copia dello stesso file del tema genitore, io trovo però più comodo partire da un file vuoto.

3. Struttura di base del file style.css nel tema child

Il file style.css è fondamentale, oltre a definire i CSS del nuovo tema, fornisce a WordPress tutte le informazioni necessarie per fargli capire che il tema che stiamo realizzando è figlio legittimo di cotanto padre. Tutto avviene nella prima manciata di righe commentate del file:

/*
Theme Name: Twenty Rob Ten
Theme URI: http://robrota.org/
Description: Variazioni a casaccio sul tema originale Twenty Ten di WordPress
Author: Roberto Rota
Version: 0.1b
Template: twentyten
*/

@import url("../twentyten/style.css");

La prima parte commentata ( /* …. */ ) fornisce a WordPress le informazioni riguardanti il nuovo tema, come la descrizione, l’autore e altre cose. Mi sono limitato a quelle fondamentali per il corretto funzionamento e poco più, ma se ne possono mettere tante altre, a titolo informativo o di semplice promemoria.

La riga importante della prima parte è quella che inizia con Template, con la quale si va ad indicare il tema che vogliamo utilizzare come genitore. Deve corrispondere al nome della cartella del tema in questione. Nell’esempio, il tema Twenty Ten, ed è importante rispettare maiuscole/minuscole del nome della cartella (generalmente tutta in minuscolo).

L’ultima riga è un’istruzione di caricamento CSS vera e propria. È importante, e dice al tema figlio di caricare tutto il file CSS del tema originale, grazie al percorso indicato tra le parentesi tonde. Questo percorso è valido per qualsiasi installazione di WordPress, ovviamente riferita al tema Twenty Ten originale. In caso di altri temi, basta solo sostituire twentyten con il nome della cartella del tema.

Con alcuni temi (quelli sviluppati meglio), l’importazione del CSS non è necessaria, nel caso questa situazione è sempre da preferire.

Il fatto che non sia richiesto di utilizzare l’istruzione “@import” è importante, in quanto è una pratica sconsigliata, sia a livelli di sicurezza che per quanto riguarda le prestazioni di WordPress.

Con altri l’importazione va impostata diversamente, magari includendo più file css, soluzione per lo meno discutibile. Per questo occorre leggere sempre le istruzioni dello sviluppatore del tema originale in merito ai temi child.

Spesso gli sviluppatori mettono a disposizione, per i loro temi, dei veri e propri template a parte per utilizzare i temi child, pratica decisamente apprezzabile.

4. Attivare il nuovo tema

A questo punto possiamo attivare il nuovo tema child, se non abbiamo sbagliato niente nell’intestazione del file style.css ce lo troveremo tra i temi disponibili, con il nome e la descrizione che abbiamo indicato.

Non ci sarà nessuna immagine di anteprima, ma è normale e non è un problema funzionale. Per averla occorre mettere un file immagine chiamato screenshot.png (una immagine di dimensioni 300 x 250 pixel) nella cartella del tema child. È possibile volendo copiare quella del tema originale, se proprio ci si tiene a volerne una, o farne una personalizzata.

Modificare un thema child per WordPress!

Così com’è, il nostro nuovo tema è una copia precisa del tema genitore a cui ci siamo ispirati. Se così non fosse abbiamo sbagliato qualcosa nelle poche istruzioni precedenti, oppure il tema originale richiede istruzioni particolari per la realizzazione di un tema child. Succede con alcuni temi, occorre seguire le istruzioni dello sviluppatori.

Ora occorre iniziare con la personalizzazione che, ricordiamocelo, va fatta tutta nella cartella del tema Child e non nel tema genitore, altrimenti vanifichiamo tutto il lavoro fin qui eseguito.

La regola di base è: il nuovo tema child carica prima tutti i CSS ed i template che sono nella sua cartella. Se lo stesso file è presente sia nella cartella del tema child che in quella del tema originale, il primo viene utilizzato al posto del secondo. I file mancanti nella cartella del tema child, WordPress li va a prendere nella cartella del tema genitore.

Il tema child ha la priorità!

Se scriviamo una istruzione CSS nel foglio di stile del tema child, questa sovrascrive l’eventuale istruzione analoga presente nel foglio di stile originale.

Idem per i file del template.

Il nostro tema child per ora è vuoto, ma se ci mettiamo dei file presi dal tema originale e li modifichiamo, esempio header.php, index.php, footer.php etc, questi vengono caricati al posto degli stessi file del tema originale.

Per tutti i file mancanti nel tema child, vengono utilizzati i file del tema originale.

Se vogliamo quindi modificare il piè di pagina del sito, prendiamo il file footer.php del tema originale, lo copiamo (copiamo, non spostiamo, è diverso) nel tema child, e qui lo modifichiamo. Qualcosa va storto? Nessun problema, cancelliamo il file dal tema child e immediatamente caricato quello del tema originale.

Unica eccezione: le funzioni del tema, funcion.php

Questo punto è molto importante: se per quanto riguarda le parti del template vale la regola che il file del tema child sostituisce quello del tema originale, questo non vale per il file delle funzioni del tema, il file function.php (da non confondere con l’omonimo file di WordPress, situato nella cartella wp-includes).

Il file function.php del tema child non si sostituisce ma si aggiunge a quello del file originale. Nel tema child il file function.php può essere un file vuoto a cui aggiungere nuove funzioni e modificare alcune di quelle originali, ma tutte le altre funzioni presenti nel file originale del tema verranno caricate.

Che io sappia, function.php è l’unico file di un tema originale a comportarsi in questo modo in un tema child.

L’editor dei temi di WordPress e le modifiche al template.

Fino a qualche versione di WordPress fa, se andavamo nell’editor di WordPress del tema child (menu Aspetto > Editor) vi trovavamo mescolati tutti i file. Quelli che stavano nella cartella child e i rimanenti della cartella del tema originale.

Un casino quando si trattava di modificare qualcosa, e non era infrequente modificare per errore un file del tema originale.

Per fortuna ora è tutto diverso, nell’editor del tema child vengono elencati solo i file che abbiamo spostato dentro la cartella del tema, e solo un link rimanda alla cartella del tema genitore.

Così sappiamo subito cosa fare se dobbiamo modificare qualche altra parte: prendiamo il file originale e lo copiamo nel tema child, così sarà disponibile per le modifiche anche nell’editor di WordPress, al posto giusto, senza pericolo di modificare l’originale.

In conclusione

Se si utilizza un tema realizzato da terzi, al quale si vogliono applicare modifiche anche minime, è sempre meglio usare un tema child al posto dell’originale!

Mi sembra di non aver tralasciato nulla, che ne dite?

Revisione di un articolo originale scritto il 10 agosto 2010.

Tags: , , , ,

184 Risposte a “Come e perché usare i temi child di WordPress”

  1. Paolo 31 Ott 2014 at 18:52 #

    Ciao Roberto, ho un dubbio da porta in merito. Ho un tema premium che prevede già una versione child e, confesso, è la prima volta che utilizzo questo approccio (prima annotavo tutte le modifiche effettuate ad un tema e le riapportavo dopo gli aggiornamenti).

    Cartella parent e cartella child si trovano nella stessa locazione, tutto appare collegato bene. I miei dubbi, a questo punto, sono due:

    1) Nella dashboard di WordPress, in aspetto, non trovo la voce editor (presente in qualsiasi altro sito, anche in un altro in cui ho utilizzato lo stesso tema, senza il child però). È normale?

    2) Qualora volessi modificare un file del tema, per esempio header.php, come posso fare? Se lo faccio in locale, dopo tramite ftp dove devo andarlo a caricare? Cartella parent o cartella child?

    Ecco, qui soprattutto è il dubbio. Ho compreso bene il discorso relativo al foglio di stile ed al file function.php ma come per modificare file del tema senza perdere il lavoro svolto dopo gli aggiornamenti?

    Grazie!

    • Roberto Rota 1 Nov 2014 at 10:23 #

      Ciao Paolo

      1. La voce editor del menu Aspetto si disattiva grazie ad un filtro che di solito si mette nel functions.php. Alle volte lo si fa per sicurezza, probabilmente sarà attivato dal tema child.

      2. Nella cartella del tema parent ci devono essere tutti i files originali del tema, non modificati. Se fai delle modifiche al file header.php, devi salvare la versione modificata nella cartella del tema child.

      Così facendo, ogni qualvolta che viene aggiornato il tema parent i files modificati nel tema child rimangono inviolati e continuano a fare il loro lavoro.

      L’unico accorgimento importante è verificare che i corrispondenti files originali dei files modificati nella cartella child non abbiano subito modifiche tali da richiedere una verifica o un aggiustamento, a questo scopo tornano molto utili le informazioni che molti sviluppatori offrono nel changelog, indicando quali sono i files interessati all’aggiornamento.

      rob

      • Paolo 2 Nov 2014 at 18:28 #

        Ciao Roberto, innanzitutto ti ringrazio molto per la risposta.

        Nella cartella parent ho tutti i file originari, intatti.
        Voglio apportare una modifica al file header.php (in realtà, più che modifica, è la semplice aggiunta del link per l’utilizzo di fontawesome), cos’ho fatto quindi? Ho copiato header.php nella cartella child ed ho apportato la modifica desiderata. Il problema è qui, ora tutta la testata del sito NON si vede.
        Eliminando header.php dalla cartella child tutto torna come prima.
        Cosa può essere?

        Posso assicurarti che child e parent sono collegati perfettamente e con il css tutto funziona regolarmente.

    • Salvatore 5 Feb 2016 at 18:07 #

      Ciao Roberto,
      una domanda sui temi child: mi trovo già con un tema personalizzato (a livello di configurazione di wordpress, non direttamente di file) cosa posso fare per utilizzare il tema child? Copio per intero il tema nel child?
      Grazie

      • Roberto Rota 8 Feb 2016 at 09:33 #

        Le personalizzazioni sul tema fatte dal suo configuratore non sono nei files ma sono scritte sul database, copiare tutto il tema nel child è inutile.

        Se il tema lo prevede puoi esportare la configurazione ed importala una volta applicato il tema child.

        rob

        • Salvatore 8 Feb 2016 at 14:50 #

          Grazie Rob,
          purtoppo il tema non lo consente, vorrà dire che faccio finta di usare il tema child per i file modificati così da mantenere traccia delle modifiche; per il prossimo sito parto da subito col child.
          Grazie del supporto.

  2. Paul 7 Nov 2014 at 20:07 #

    Ciao Roberto,
    ho effettuato la prova ho creato un cartella seguendo le tue indicazioni nei minimi dettagli, quando ho attivato il child il tema non dava errori ma completamente fuori stile, avevo lasciato il style.css vuoto come dicevi, ma forse dovrei fare la copia dell’attuale che dici??
    Un altra cosa, quando scrivi di creare i file con “solo le righe modificate”, come si fa poi con la numerazione?? ad esempio ho modificato lo style del tema in diversi punti, sono piccole modifiche, nulla di che… ma essendo piccole modifiche hanno una loro numerazione come riga , inoltre alcune di loro sono replicate nel listato, quindi presenti in diverse righe, mi puoi quindi spiegare meglio quello che hai scritto?
    o meglio..
    nei file che importo nella cartella child posso inserire “solo” le righe di quei file che ho modificato, a prescindere dalla loro numerazione?? e dalla forma del codice, senza considerare alcuna regola? è corretto??

    Grazie
    Paul

    • Roberto Rota 8 Nov 2014 at 22:32 #

      Ciao Paul, tu in pratica assegni dei valori diversi a classi e/o ID esistenti, che possono aggiungersi e sostituirsi ai valori esistenti.

      Se una classe viene ripetuta più volte per assegnare valori diversi, ha poco a che vedere con i valori che interessano a te, il file CSS nel child sostituisce o aggiunge i singoli valori che tu definisci a determinate classi, ma non va a toccare gli altri valori eventualmente presenti per la stessa classe.

      rob

      • Paul 9 Nov 2014 at 02:08 #

        Ciao Rob,
        e tutto molto chiaro , credo di aver interpretato correttamente quello che hai scritto, ma allora come mai non funziona mi chiedo??

        Paul

        • Roberto Rota 9 Nov 2014 at 16:31 #

          Ciao Paul, alcuni temi si comportano male con i temi child, magari nella documentazione del tema è scritto da qualche parte che bisogna avere accorgimenti particolati.

          Poi ci sarebbe sempre da considerare il fatidico “errore umano”, sempre in agguato.

          Senza vedere niente, è difficile risponderti 😉

          rob

          • Paul 9 Nov 2014 at 21:38 #

            Ciao Roberto,

            ho scritto a chi ha realizzato il tema in merito al tema child, vedremo cosa mi risponderanno, hanno diversi tema child in quanto il medesimo tema lo offrono in diverse personalizzazioni per vari settori, ma non ho visto il tema child per il mio tema quello di default, attendo una loro risposta poi ti faccio sapere, ti ringrazio della disponibilità.

            Paul

            • Paul 10 Nov 2014 at 12:38 #

              Ciao Roberto, aggiornamento del bollettino di guerra.. 😉 mi hanno risposto e nel nuovo aggiornamento del tema c’era proprio una cartellina child da inserire, era sufficiente cambiare il nome autore e il path.., installata e attivato il tema child, funziona benissimo, ho dovuto solo modificare favicon e logo dal pannello delle preferenze del tema e tutto va a meraviglia. A questo punto ritorno sull’argomento, ti faccio un esempio nel vecchio file style.css ho modificato leggermente delle righe, in particolare le righe:1366 e 7723 dove ho sostituito (da: overflow: hidden;) (a: /* overflow: hidden; */), secondo quanto mi scrivi sarebbe sufficiente aggiungere nel style.css in child theme (* overflow: hidden; */), senza nessun riferimento di riga, pur considerando che questa variazione interessa due righe distante.. tu dici che funziona??
              Grazie Paul

              • Roberto Rota 10 Nov 2014 at 15:12 #

                Se hai scritto correttamente la sintassi, a partire dalla classe/ID interessati, dovrebbe funzionare

                rob

  3. Paul 7 Nov 2014 at 21:29 #

    Ciao Roberto,

    ci ho provato ma nn ci sono riuscito, forse il mio tema ha qualche problema, o forse perché ho creato il tema child dopo aver creato il tema standard, quindi tutte le personalizzazioni a livello di configurazione del tema si perdono, con il risultato che il tema è fuori stile, pur copiando nella cartella child paro paro il file style.css. boh
    Paul

  4. foresta amazzonica 17 Nov 2014 at 12:47 #

    Grazie mille, sei stato utilissimo!

  5. Nicola 25 Nov 2014 at 19:02 #

    Ciao Rob,
    sto cercando di leggermi tutto il tuo sito nel mio tempo libero, mi sono fatto uno sbattimento unico fino ad oggi. Anche nel leggere tutti i commenti alla fine dei tuoi articoli. Spesso avrei voluto rispondere io al tuo posto e ammetto non sarei stato così buonanima come me :D.
    Ti scrivo solo perché sono felicemente esausto per tutto quello che ho letto. Sono sazio di cultura per oggi. Sei davvero un grande. Non ho niente da chiederti. Scrivo solo altre due parole. Grazie Mille.

  6. Aurora Ciuffolo 27 Nov 2014 at 16:36 #

    Ho un problema con il mio sito wordpress 🙁 Non so come risolvere! In pratica quando clicco sul blog si apre una pagina bianca senza niente, lo stesso accade se ad aprirla è un’altra persona! Cosa devo fare?

    • Roberto Rota 27 Nov 2014 at 16:48 #

      Ciao Aurora,
      siamo fuori tema rispetto l’articolo, quindi se hai bisogno di maggior aiuto usa il modulo di contatto.

      Prova a disattivare tutti i plugin via FTP, rinominando temporaneamente la cartella wp-content/plugins, il più delle volte il problema è uno di loro.

      Altrimenti potrebbe essere il tema, o un aggiornamento automatico andato a male.

      Roberto

  7. Stefano 17 Gen 2015 at 12:49 #

    Ciao Roberto,

    davvero complimenti per l’articolo. Sono un principiante e mi hai chiarito alcune cose sulle quali mi stavo interrogando. Su una in particolare ti chiederei una conferma: rispondendo ad un commento scrivi che utilizzare un tema child ha poco senso se si pensa di modificare il tema utilizzando solo le varie opzioni offerte dal tema stesso. Quindi, se non ho intenzione di scrivere codice e mi limito ad apportare modifiche attraverso le opzioni del tema (che so, cambiare la tipologia di un font oppure il colore di fondo dell’intestazione) posso tranquillamente operare sul tema originale (parent) senza installare alcun child e con la sicurezza che le modifiche non andranno poi perse con un eventuale aggiornamento del tema?

    Mille grazie.
    Stefano

    • Roberto Rota 17 Gen 2015 at 12:55 #

      Ciao Stefano

      in teoria sì, tutte le opzioni e le customizzazioni del tema tramite il suo pannello di controllo dovrebbero essere mantenute dopo un aggiornamento del tema stesso.

      Qui però entra in gioco la qualità del tema, e con alcuni in passato mi è successo che le opzioni venissero resettate.

      In genere i temi più evoluti prevedono anche una sezione per backup/ripristino delle impostazioni del tema, se c’è conviene sempre approfittarne.

      Oltre naturalmente ad un bel backup generale…

      rob

      • Stefano 17 Gen 2015 at 16:48 #

        Grazie della pronta e chiara risposta. Nel pannello di controllo del tema c’è un tab import/export ma non è molto chiaro cosa in realtà importi/esporti. Ho chiesto lumi all’autore chiedendo anche rassicurazioni in merito al mantenimento o meno delle customizzazioni da pannello di controllo in caso di aggiornamento.
        Ciao.
        Stefano

        • Roberto Rota 17 Gen 2015 at 19:26 #

          Il tab in questione solitamente serve proprio per esportare le eventuali personalizzazioni fatte da pannello di controllo, per salvaguardarle e poterle ripristinare in caso di problemi, o per replicarle su un altro sito con lo stesso tema.

          rob

  8. La Fra 5 Feb 2015 at 16:46 #

    Ciao Rob,
    arrivo finalmente sul tuo sito dopo giorni di ricerche estenuanti e poco produttive. Non so se ridere o piangere pensando alle mille guide/tutorial che affermano che in 5 minuti fai tutte le modifiche che vuoi su WP. Mah!
    Dopo anni su Blogger in cui, pur senza competenze specifiche, ho fatto molte modifiche toccando il codice, sono passata a WordPress, ma partendo da zero, con un sito nuovo di zecca.
    Allora, ho comprato il tema Presso su ThemeForest e volevo apportare alcune modifiche non possibili senza mettere mano ai codici, ma sempre cose semplici tipo togliere una riga, ridurre i margini, ecc. Ho preso come esempio un altro sito che ho trovato in rete e che usa lo stesso tema.
    Sto lavorando in locale tramite XAMPP, quindi ho la mia bella copia di WordPress.
    Il mio tema Presso comprende già il Child Theme, l’ho caricato insieme al padre sulla copia locale di WordPress e ho installato quello, mentre il padre sta lì vicino.
    E fin qui tutto ok.
    Se non ho capito male, se per esempio voglio fare delle modifiche all’header, devo copiare il file header.php dalla cartella padre a quella child in modo da modificare solo sul child.
    Ma fisicamente le modifiche al codice, le devo fare sul file (quindi dentro la cartella del pc) o dall’editor di WordPress selezionando il file corrispondente? Se la risposta è la seconda che ho detto, i vari file che aggiungo alla cartella child, non li ritrovo nell’editor di WordPress dove trovo solo quelle iniziali function.php e style.css.
    Se invece la risposta è la prima che ho detto, se modifico direttamente nel file dentro la cartella nel pc (ho provato a cancellare intere righe di codice) non succede proprio niente… nessuna modifica viene apportata al tema…
    Sono veramente demoralizzata… spero potrai aiutarmi.

    Grazie.

    Francesca

    • Roberto Rota 5 Feb 2015 at 19:00 #

      Ciao Francesca, benvenuta nel club 😉

      Hai capito bene, i files che vuoi personalizzare li devi copiare nel tema child. Una volta fatto, li puoi modificare direttamente con un editor di testo, oppure con l’editor di WordPress che dovrebbe mostrarteli, assieme ai files del tema child.

      Se non te li mostra, allora hai un problema di altro genere. Magari di XAMP, forse genera una cache che ti ostacola.

      Un altro problema potrebbe essere se i file sono in una sottocartella rispetto alla principale del child, ho visto che in taluni casi non vengono visti, ma se i file invece sono nella cartella principale del child non c’è motivo per cui tu non debba vederli, in teoria.

      rob

  9. Ivan 5 Feb 2015 at 19:25 #

    Ciao Roberto. Dal mio punto di vista: l’uso del tema child è un gran risparmio di tempo quando si vuole personalizzare un tema genitore. Il problema è che quando si personalizza un tema si arriva a farlo fortemente, per poi trovarci (a furia di personalizzare) con un tema talmente personalizzato che si faceva prima a farlo da zero magari prendendo spunto da un qualsiasi tema ma senza esserne dipendenti. Inoltre si dice che il child conviene in termini di sicurezza, ma se creo un child che contiene del codice nuovo e “mal programmato” (anche poche righe), il tema child diventa il punto debole del sistema compromettendo la sicurezza di tutto il sito. Per cui si al child, ma solo per piccole modifiche e sopratutto modifiche grafiche (in termini di CSS).

    • Roberto Rota 5 Feb 2015 at 21:56 #

      Ciao Ivan, sottoscrivo praticamente tutto.

      Un child ha senso quando l’intenzione è di personalizzare il tema genitore, soprattutto esteticamente.

      Se arrivi al punto che le modifiche stravolgono completamente la struttura funzionale del tema originale, chiaro che sarebbe opportuno valutare la riscrittura di un tema ex-novo.

      Riguardo la sicurezza, il tema child permette di poter eseguire con molte meno preoccupazioni gli aggiornamenti del tema originale, che spesso comprendono aggiustamenti e bugfix relativi a questo argomento.

      Chiaro che se poi farcisci il child di codice e funzioni come fosse mortadella, non fai altro che offrire il fianco… 😉

      rob

  10. La Fra 5 Feb 2015 at 23:47 #

    Ciao Rob, grazie per la risposta chiara e velocissima.
    I file sono nella cartella giusta, quindi non mi resta che ipotizzare che sia un problema creato da XAMPP. A questo punto la domanda nasce spontanea: ma se io accantonassi il lavoro in remoto usando comunque il tema child su WordPress originale? E’ già un sistema sicuro, no?
    Quanto alle mie intenzioni, mi collego all’intervento di Ivan: le modifiche che voglio fare sono sostanzialmente estetiche. Voglio realizzare un sito personale con tre o quattro pagine statiche, poche immagini e un po’ di testi. Come dicevo nel primo intervento, ho trovato il sito di una ragazza che incarna esattamente la mia idea e per questo ho comprato lo stesso tema WP usato da loro (l’ho trovato nei codici sorgente). Vorrei “copiare” l’impostazione grafica, ma poi applicherei colori, font e contenuti miei.

    • Roberto Rota 7 Feb 2015 at 11:42 #

      Ciao Francesca, sono in molti che lavorano direttamente nel sito che dovrà andare in produzione, anche a me è capitato di farlo spesso anche se preferisco comunque lavorare in locale.

      rob

  11. akismet-52a2b0687289a0d406338cb940fed350 19 Feb 2015 at 10:45 #

    Ciao Roberto e complimenti per il blog!
    Avrei un piccolo quesito da sottoporti: uso un tema child e sin qui tutto ok, funziona perfettamente. Ho apportanto alcune modifiche a qualche file php ed ho copiato interamente il file del tema padre nel tema child apportandone, per l’appunto, le modifiche che il tema ha acquisito correttamente. Ora però è arrivato un aggiornamento e mi assale un dubbio, se passo l’aggiornamento nel tema padre e vengono aggiornati i file che io ho modificato nel tema child, questi non verranno letti perchè giustamente vengono letti per prima quelli del child, giusto? Forse non dovevo copiare interamente i file?
    Grazie in anticipo!

    • Roberto Rota 19 Feb 2015 at 10:51 #

      Non ho capito, hai copiato tutti i files del tema originale nel tema child?

      Se sì non è la procedura corretta, devi copiare nel child solo i files che ti interessa modificare.

      In questo modo, solo i file modificati verranno utilizzati al posto di quelli originali.

      rob

      • akismet-52a2b0687289a0d406338cb940fed350 19 Feb 2015 at 11:00 #

        no infatti ho copiato solo i file che mi interessava modificare, ma il mio dubbio è:
        – tieni che ho copiato il file comments.php per intero nel tema child e l’ho modificato.
        – ora l’aggiornamento comprende una modifica anche del file comments.php che avviene nel tema padre

        l’aggiornamento non viene effettuato perchè non legge il nuovo file ma il “vecchio” che io ho modifcato nel tema child….o sbaglio?

        Tommaso

        • Roberto Rota 19 Feb 2015 at 11:02 #

          Non sbagli, in questi casi bisogna aggiornare il file modificato nel tema child, prendendo la nuova versione dal tema originale e adattandola con le modifiche che tu avevi fatto nella vecchia.

          rob

          • akismet-52a2b0687289a0d406338cb940fed350 19 Feb 2015 at 11:13 #

            Dubbio fondato ma chiarito!!!
            Grazie mille Roberto.

  12. stefano de luca 28 Feb 2015 at 16:49 #

    Ciao Roberto
    ho bisogno di un consiglio ultimo wp:
    vorrei nel CSS Personalizzato aggiungere delle regole che modifichino gli eventuali temi che potrei usare per il mio sito (attualmente in locale)

    ho aggiunto:
    /* stile hyperlink
    */
    link {
    text-decoration: none;
    color: red;
    }

    visited {
    text-decoration: none;
    color: red;
    }

    hover {
    text-decoration: none;
    color: green;
    }

    sperando che i hyperlink … articoli recenti, ecc … non siano più sottolineati
    purtroppo niente sono rimasti invariati

    • Roberto Rota 1 Mar 2015 at 10:25 #

      Ciao Stefano, probabilmente è solo un problema di sintassi. Correggi con:

      a:link { ...
      a:visited { ...
      a:hover { ...

      rob

  13. estelsempre79 1 Mar 2015 at 23:06 #

    Ciao Roberto, ti ringrazio innanzitutto per la guida, fondamentale!
    Così sono riuscita a creare il tema child dal tema Sela, importando anche il file function.php, utilizzando per fare il tutto filezilla.
    Ora, ho ispezionato parte del sito con firebug volendo modificare il colore del menu di navigazione e il font. Credevo di dover copiare la parte del codice con il colore modificato, nel foglio di stile del child per averne la modifica, non funziona.
    Codice inserito:

    .main-navigation {
    background-color: #00b2a6;
    border-bottom: 2px solid rgba(0, 0, 0, 0.15);
    color: #fff;
    display: block;
    padding: 0 1em;
    }

    Mi potresti dare una mano, sono agli inizi!
    Grazie mille!

    • Roberto Rota 2 Mar 2015 at 01:03 #

      Ciao, la classe da modificare è un’altra:

      .main-navigation ul a {...

      rob

      • estelsempre79estelsempre79 2 Mar 2015 at 14:13 #

        Ciao. grazie per la tempestiva risposta ma sono ancora in difficoltà perchè la classe che mi hai indicato non è presente nel file style.css del tema padre e l’unica parte in cui è indicato il colore (#f25f70) che voglio modificare è quella che ho riportato nel commento precedente. provo a riportarti tutta la parte che riguarda il menu di navigazione:

        ……..

        grazie ancora!

        • Roberto Rota 2 Mar 2015 at 16:55 #

          Io ho provato con la demo del tema Sela, e modificando come ti ho detto è possibile cambiare dimensione e colore dei menu.

          rob

  14. max 12 Giu 2015 at 15:50 #

    Ciao Rob ottimo articolo .. ho provato come hai scritto e funziona tutto .. solo una cosa non funziona ho un file nel tema padre che si chiama ninzio-functions.php dentro alla cartella includes ho provato ad inserirerlo dentro alla cartella tema-child/includes/ ho apportato 2-3 modifiche (lasciando uguale tutto il resto) ma non me le mostra .. secondo te come mai? In teoria dovrebbe prenderle ..

    • Roberto Rota 12 Giu 2015 at 18:25 #

      Ciao Max, la gestione di files di funzioni diversi in sottocartelle può essere complicata, e cambiare da tema a tema.

      Dato però che sempre di funzioni si tratta, dovresti poterle inserire senza problemi anche le file functions.php del tema child, no?

      Roberto

      • Max 15 Giu 2015 at 18:16 #

        Grazie per la risposta .. allora avevo già provato come dici tu ma esce il messaggio: PHP Fatal error: Cannot redeclare .. quindi a questo punto .. non so che fare .. mi conviene mettere le mani direttamente sul file originale.

        • Roberto Rota 16 Giu 2015 at 12:20 #

          Ciao Max, attenzione però che il tipo di errore potrebbe dipendere da un tuo problema, che magari stai tentando di duplicare delle funzioni.

          rob

  15. annoestero1 17 Lug 2015 at 12:35 #

    ciao, ho una domanda da ignorantissima… ho già fatto delle personalizzazioni al tema (header, footer etc) in divi theme. mi chiedo: poichè ho aggiornamenti automatici disabilitati.. fino a che non decido di installarne qualcuno, faccio sempre in tempo a creare dopo un child theme? cioè il child theme da quello che capisco copia il tema originale (incluse eventuali modifiche al momento scritte sul tema), e poi da lì.. lavori solo sul child giusto? cioè se lo creo in un secondo momento non devo ricopiare tutte le modifiche a mano? anche perchè chi si ricorda.. grazie

    • Roberto Rota 18 Lug 2015 at 16:05 #

      Ricordarsi quali file sono stati modificati è importante, o per lo meno potervi risalire in qualche modo.
      Una volta individuati puoi copiarli nel tema child, e quindi aggiornare il tema originale.

      rob

  16. Gianella (@caminiecamini) 4 Dic 2015 at 15:19 #

    ciao rob mi sto avvicinando ora ai temi child … mi spiego non li ho mai usati pero ora vorrei iniziare … il mi tema ha il child … nel tuo articolo leggo che praticamente qualsiasi modifica io faccia ai css o ai php lui li tiene giusto? ma queste modifiche le faccio via editor wordpress oppure posso farle anche via ftp?
    Ora io quando modifico un php lo duplico e poi faccio la modifica via ftp .

    Ad esempio ora io ho un tema che ho modificato in diverse parti ..versione 7.6 ora e’ uscito un update 7.7 + il tema child … (anche il vecchio 7.6 aveva il child, ma non utilizzato)

    ora se dovessi attivare il tema child del 7.6 cosa succederà’ in teoria dovrebbe prendere il sito così com’e’ ora giusto? visto che dovrebbe considerarlo come originale?

    e secondo te il fatto che si aggiornano i temi ed anche i child io dovrò aggiornare tutti e due? oppure aggiorno solo il tema principale e basta?

    grazie a presto.

    -franco

    • Roberto Rota 4 Dic 2015 at 19:23 #

      Ciao Franco, ti consiglio di rileggere bene l’articolo.

      il tema child è un tema figlio, separato dal padre, in cui tieni solo il foglio di stile principale, se serve il file delle funzioni, e al bisogno copie dei file del tema originale contenenti le modifiche effettuate.

      In caso di aggiornamento del tema, devi aggiornare il tema genitore e non il tema child, altrimenti perdi tutte le personalizzazioni.

      In caso venga aggiornato anche il tema child, perché contiene altri elementi oltre a quelli citati, bisogna procedere con cautela evitando di sovrascrivere i file che tu hai personalizzato.

      rob

      • Gianella (@caminiecamini) 5 Dic 2015 at 10:52 #

        quindi se io ho un file nella cartella del padre “includes” esempio “shortcode” … lascio l’originale dov’e’ e poi creo una cartella “includes” e metto il file shortcode modificato all’interno del figlio …. giusto?
        e cosi per tutti i files modificati …

        grazie.

        • Roberto Rota 5 Dic 2015 at 12:06 #

          Ciao Franco, per quello che riguarda i files delle cartelle interne del tema tutto dipende dal tema stesso, con alcuni non funziona o bisogna prendere degli accorgimenti.

          rob

          • Gianella (@caminiecamini) 5 Dic 2015 at 12:41 #

            ma leggendo in giro si dice che si possono modificare i files php .. e poi metterli nel tema child… o sbaglio .. oddio e’ più dura di quanto pensassi …. ora sento quelli del tema …

            grazie rob fantastico..

            • Roberto Rota 5 Dic 2015 at 12:43 #

              Si, ti confermo, e con i file php del primo livello della cartella del tema funziona praticamente sempre, ma per i file nei livelli inferiori (sotto-cartelle) molto dipende dal tema, meglio leggere la sua documentazione o interpellare gli sviluppatori per togliersi il dubbio.

              rob

  17. ivanomartiellov 28 Gen 2016 at 15:19 #

    scusa se io ho un file all’interno di un plugin, che voglio modificare sennò ad ogni aggiornamento del plugin perdo la modifica, come faccio a farlo leggere nella cartella del tema child, ad es. ho il file blog.php all’interno di wpcontetn/plugin/mioplugin. Lo modifico e lo metto nella cartella child ma le modifiche non si vedono, come devo fare? grazie

    • Roberto Rota 28 Gen 2016 at 15:25 #

      Ciao Ivano,

      per i plugin non funziona come per i temi, purtroppo. A pare WooCommerce, non conosco plugin che sfruttano le cartelle child.

      Molti plugin ormai gestiscono le lingue con i file di localizzazione, e basta creare il file appropriato per la lingua desiderata.

      rob

  18. marco 29 Gen 2016 at 15:21 #

    ciao Roberto,
    volevo cambiare i colori del testo, apro il file dei stili, main-style.css, cambio tutto, lo carico, vado sul sito aggiorno, bellissimo tutti i colori come li voglio io, dopo 10 min, però, ricarico per delle modifiche, e mi cambia alcuni colori, non tutti, mi tornano come l’originale.
    Xchè? Credo sia la storia del genitore e figlio, ma non riesco a trovare dove modificare il css nel genitore cherry.

    Aiuto !!!!!

  19. Valeria 15 Mar 2016 at 16:35 #

    ciao Roberto, una domanda proprio scema, ma quando è disponibile un aggiornamento del tema padre, come facciamo a saperlo? Arriva una notifica? E soprattutto, se stiamo utilizzando un tema child, come si fa ad aggiornare il padre?
    grazie.

    • Roberto Rota 15 Mar 2016 at 18:37 #

      Ciao Valeria,

      gli aggiornamenti dei temi in teoria vengono sempre segnalati in bacheca, quando sono realizzati bene.
      Alcuni temi premium segnalano gli aggiornamenti solo se si inseriscono le chiavi di attivazione.

      Il tema padre si aggiorna autonomamente, come tutti i temi.

      Roberto

      • Valeria 16 Mar 2016 at 13:35 #

        Grazie mille! Per caso conosci come si comporta real homes estate?

        • Roberto Rota 17 Mar 2016 at 17:34 #

          Ciao Valeria, purtroppo non ricordo di averlo mai utilizzato questo tema.

          rob

      • Valeria 16 Mar 2016 at 13:35 #

        Grazie mille! Per caso conosci come si comporta real homes estate?

  20. Alessandro Adinolfi 1 Giu 2016 at 19:15 #

    Ciao Roberto, per smanettare un po ho cambiato lo sfondo del mio tema child inserendo il codice con il colore nell’editor. Ma ora pur cancellando il codice dello sfondo non torna il mio colore originario ma rimane il codice precedente che provai ad inserire. Come devo fare per tornare al mio vecchio colore originario? Sono disperato

    • Roberto Rota 3 Giu 2016 at 11:06 #

      Ciao Alessandro, molti temi hanno la possibilità di resettare le singole pagine di opzioni, non so se il tuo è tra questi.

      Altrimenti se c’è la possibilità di esportare/importare i settaggi, puoi modificare il colore nel file esportato e reimportarlo.

      rob

  21. Massimiliano Riccio 2 Giu 2017 at 12:15 #

    Ciao Roberto, ottimo articolo 😉
    Io sto lavorando su un template-child ma mi succede che le modifiche ai file nella root principale vengono apportate, ma se sono in sottocartelle questi non vengono presi in considerazione ma valgono sempre quelli del template genitore.
    es:
    child-teme/404.php (le modifiche funzionano)
    child-theme/inc/functions/functions-header.php (le modifiche non funzionano)

    Qualche consiglio!?

    • Roberto Rota 2 Giu 2017 at 19:53 #

      Raramente funzionano le modifiche che non riguardino gli elementi al primo livello del tema.

      Per modificare funzioni esistenti sul tema originale, devi farlo sul functions.php del tema child.

      rob

  22. marcopiazzaartforhome 8 Dic 2017 at 16:41 #

    Ho iniziato le modifiche di un sito premium un anno fa e adesso che lo riprendo in mano per definirlo mi sono imposto di occuparmi di creare il tema child. ho perfino un assistente dello staff che mi segue, bravo, ma in alcuni casi la cosa diventa leggermente tempisticamente lunga. Ho letto diversi blogger di come realizzare questo famoso tema-child, ma vuoi per la traduzione google, o altro, alla fine ho capito qualcosa solo dalla tua descrizione chiara e precisa. Complimenti e grazie

  23. marcopiazzaartforhome 8 Dic 2017 at 17:32 #

    dunque mi si è pulita la mente e anche finalmente il sito , Ora ho risistemato il file css da caricare e funziona senza nessuna indicazione da seguire per ripescare dal tema genitore. una o 2 cose sono da sistemare ma aspetto dopo che sono riuscito a fare il file php, perché magari dipende dai dati contenuti in esso. Qui comunque ho dei dubbi ancora per esempio ci sono delle stringhe di testo in cui delle righe sono state eliminate per disattivare delle funzioni, ecco qui per esempio ancora non so cosa dovrò fare.. ma inizio poi nel caso so che ci sei! grazie ancora

  24. marcopiazzaartforhome 8 Dic 2017 at 17:50 #

    Mi devi scusare ma visto che sto lavorando in remoto solo ora alcune modifiche sono giunte e ancora il meccanismo non funziona, quindi ora proverò con “Child Theme Configurator” per vedere se funziona, scusami magari questo e il commento precedente è meglio che non li convalidi. Il primo invece io lo accetterei perché in effetti è vero che descrivi in questo articolo molto bene i passaggi con varie sfaccettature opportune.

Trackbacks/Pingbacks

  1. √ WordPress: inserire testo o HTML dopo i post | Roberto Rota - 7 Nov 2014

    […] Il codice che segue va aggiunto nel file delle funzioni del tema in uso, meglio ovviamente se si tratta di un tema child: […]

  2. √ Traduzione dei temi WordPress | Roberto Rota - 10 Nov 2014

    […] Proteggersi da questa eventualità è molto semplice: bisogna utilizzare i temi child di WordPress. […]

  3. √ Personalizzare il primo post di WordPress | Roberto Rota - 17 Nov 2014

    […] Il codice che segue va inserito nel solito file delle funzioni del tema, il functions.php, meglio ancora se si utilizza un tema child. […]

  4. √ Configurare i temi premium per WordPress | Roberto Rota - 18 Dic 2014

    […] nell’installazione definitiva, che in quella di test, non scordarti di utilizzare un tema child, mi raccomando. Molti temi premium mettono a disposizione un tema child pronto per […]

  5. √ WooCommerce: cambiare titolo pagina Shop | Roberto Rota - 11 Mar 2015

    […] raccomandazione di sempre è quella di utilizzare un tema child, per la salvaguardia delle modifiche effettuate al tema ed a WooCommerce da futuri […]

  6. √ Ordini per multipli in WooCommerce - 27 Mag 2015

    […] Il codice che segue, che ho trovato in rete e personalizzato, deve essere copiato nel file delle funzioni del tema (al solito meglio se si tratta di un tema child). […]

  7. √ Cambiare il testo “Procedi su Paypal” in WooCommerce - 25 Ott 2015

    […] Questo è il codice che va inserito nel file functions.php delle funzioni del tema, come al solito meglio se si tratta di un tema child: […]

  8. √ Snippet WooCommerce per notifica ordine con coupon - 6 Giu 2016

    […] di rito: questo genere di interventi è bene effettuarli utilizzando un tema child, per evitare di perderli al primo aggiornamento del […]

Dubbi o suggerimenti? Lascia un commento!

I love Instagram