Indice dei contenuti
ToggleCosa sono i temi child di WordPress
Un tema child (figlio) di WordPress è un tema che viene utilizzato assieme ad un altro tema, detto parent o genitore, da cui eredita stili e funzionalità.
Il tema figlio permette di aggiungere o modificare funzionalità senza dover modificare il tema genitore originale, evitando che queste vengano cancellate ad ogni aggiornamento del tema genitore.
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.
[tweet “Se usi i temi child di #WordPress eviti un sacco di guai”]
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.
[box type=”alert” size=”large” style=”rounded” border=”full”]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.[/box]
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?
[box type=”info” size=”large” style=”rounded” border=”full”]Revisione di un articolo originale scritto il 10 agosto 2010.[/box]
188 risposte
Grazie Roberto, disponibilissimo, ora è tutto chiaro, ciaoo
Forse, facendo la mia domanda sopra più semplice, potrei dire: quando faccio delle modifiche come faccio a capire su quale file opero/ho operato e quindi sarebbe meglio copiarlo nella cartella del child prima della modifica?
Esatto, devi copiare (non spostare) nella cartella del tema child solo ed esclusivamente i files del template che intendi modificare, prima di modificarli.
rob
Prima di tutto grazie per la guida!
un dubbio sui file modificati da mettere nel child: se si tratta ad esempio di icone da visualizzare con un colore diverso, devo creare tutta la struttura di cartelle del tema originale tipo /images/ e poi caricare il file del colore modificato vero?
grazie ancora
Paolo
Ciao Paolo, la risposta è “nì”…
nel senso che dipende dal tema, alcuni guardano anche il posizionamento degli elementi, altri (molti) puntano direttamente alla cartella nel tema genitore.
dipende anche come viene indicata la cartella delle immagini, se è frutto di una funzione, o di una indicazione nei CSS, o un link diretto.
rob
Ciao Rob, ho appena iniziato a seguirti e sono spesso sul tuo sito a leggere consigli, sono agli inizi con wordpress, ho creato un tema child, ma ho qualche dubbio. Visto che il tema child ci preserva solo per lo style.css e per le modifiche fatte sui file nella cartella child (chiamati come nella cartella padre), non converebbe fare la copia di tutta la cartella del tema padre? Vuotando il contenuto di function.php e lasciando lo style.css come in questa guida? Grazie per le eventuali delucidazioni che vorrai darmi, ciaoo
Ciao Luca.
No, non converrebbe perché in caso di aggiornamento del tema ti ritroveresti ad utilizzare sempre la versione vecchia, e non la nuova, e questo potrebbe voler dire portarsi dietro bugfix e vulnerabilità che potrebbero essere state aggiustate.
Con i soli file modificati nel child, invece, devi solo accertarti quali modifiche sono state effettuate in questi file nell’aggiornamento del tema, il changelog dei temi più seri è molto utile in questo senso, ed eventualmente modificarli al bisogno.
Considerando che non tutti i files del tema vengono aggiornati durante gli aggiornamenti, anzi negli aggiornamenti di mantenimento in genere i file modificati sono molto pochi, la possibilità che tu non abbia bisogno di intervenire è elevata.
rob
Ciao Roberto.
Sto provando a “strimpellare” usando il tema MN-Flow per capire un po’ di più di WP del quale non so quasi nulla.
Non ho trovato indicazioni sulla sua compatibilità sulle questione “child”
Qui però vedo che i fogli di stile che controllano buona parte dell’interfaccia sono annidati in wp-content\themes\mn-flow\assets\dist\…
Se ad esempio consideriamo il file “all.min.css” (in “dist”), volendo cambiare un parametro si deve creare nel tema child tutta la serie di sottodirectory vuote “wp-content\themes\mn-flow\assets\dist\…” inserendo poi sul file “all.min.css”” dove saranno scritte solo le stringhe contenenti le modifica rispetto al file omonimo del tema padre?
A dire il vero ci ho provato ma non cambia nulla, sembra prevalere il file del tema padre.
Questo lascerebbe presumere una non compatibilità del tema MN Flow con i “child”?
Grazie!
Ciao Paolo, non so se riguarda anche MN-flow che non conosco, ma alcuni temi riescono a complicare la vita riguardo l’utilizzo dei temi child, e personalmente è già un buon motivo per non utilizzarli.
In teoria, se devi cambiare il valore di poche classi, non è necessario ripetere la struttura dei file CSS del tema originale, ma inserire le variazioni direttamente nello style.css del tema child. Dovrai fare attenzione ad eventuali condizioni, come ad esempio i media di destinazione.
Replicando la struttura delle cartelle dei CSS nel child, ma non dichiarando da nessuna parte che sono CSS da importare nella configurazione, difficilmente verranno presi in considerazione.
rob
Ciao roberto!
ho acquistato un tema da poco che ha sia tema padre che figlio. C’è una prassi da seguire?Ovvero: installo il tema padre e subito dopo il tema figlio; l’istallazione dei plugins e le modifiche (per modifiche intendo cambiare le caratteristiche del tema dal pannello di wordpress, non dal codice) le eseguo già dal tema figlio? Oppure c’è qualcosa che va necessariamente fatto dal tema padre(installazione dei plugin?!)?
Il tema figlio quindi serve solo nel caso in cui si preveda di modificare il codice??
(sono mooolto alle prime armi:))
grazie!!!!
Ciao Francesca, alcuni sviluppatori finalmente allegano il child ai loro temi, la trovo una cosa molto bella.
Il child lo installi esattamente come il tema originale, se lo fai via FTP devi mettere le due cartelle (tema e child) dentro la cartella themes, e selezionare il tema child in WordPress.
In teoria non dovresti fare niente altro.
rob
Ciao Roberto,
che differenza c’è tra un tema e un template grafico? Il template è contenuto nel tema, forse.
Ciao Marcella, anche se la traduzione è leggermente differente, per tema o template in genere, almeno per quello che riguarda WordPress, ci si riferisce sempre alla stessa cosa.
Magari in fase di realizzazione di un sito, e parlando con gli addetti ai lavori, ci possono essere sfumature differenti, nel senso che il tema è quello che compri già fatto perché corrisponde alle tue esigenze, mentre un template potrebbe essere inteso il “canovaccio” dove lavorare per una personalizzazione particolare.
rob
Ma per quanto riguarda i file php, uno deve ricreare nel child il path del file originale?
Per capirci a:
wp-content/tema/sottocartella1/file1.php
wp-content/tema/sottocartella2/images/faqualcosa.php
devono corrispondere:
wp-content/tema-child/sottocartella1/file1.php
wp-content/tema-child/sottocartella2/images/faqualcosa.php
Grazie
In genere si, bisogna mantenere la struttura, ma tieni presente che in alcuni temi il child funziona solo al primo livello. Non ho mai capito perché….
ciao Roberto,
ho trovato parecchio utile la guida… il commento qui sopra mi ha definitivamente chiarito le idee. 🙂
ma (c’è spesso un “Ma”) nel mio tema ho avuto necessità di modificare anche un file .php di un plugin (gratuito). sai per caso se il concetto di “child” si può applicare anche ai plugin?
GRAZIE,
riccardo
Ciao Riccardo, felice di esserti stato utile.
Riguardo ai plugin purtroppo no che io sappia, solo alcuni plugin evoluti come WooCommerce prevedono una specie di child, inserendo una cartella “woocommerce” nel tema utilizzato, ma di tutti i plugin che mi sono capitati, per ora solo WooCommerce ha questa possibilità.
rob
grazie mille! vorrà dire che, per ora, mi conservo in locale i file modificati e quando aggiorno i plugin li sovrascrivo via ftp. 🙂
Più che sovrascriverli con i vecchi, visto che potrebbero essere aggiornati pure quelli nell’originale, io li terrei solo per replicare le modifiche nei nuovi file.
rob
Ciao Rob, ho un problema enorme, ho acquistato e installato il tema fashionista, stupidamente ho lavorato sul tema padre, creando quindi tutte le pagine, post, immagini, modificando il foglio di stile ecc.. Insomma è completamente operativo e funzionante ma tutto sul tema padre. Ora ho creato la cartella child con le tue informazioni e sistemando il file style.css, fin qui tutto ok, ma cosa devo fare con tutti gli altri file modificati e le immagini caricate sul tema padre?
La cosa più semplice è individuare i file modificati, rispetto al tema originale, e trasferirli nel tema child, assieme a tutti i file eventualmente modificati e/o aggiunti.
Una volta fatto questo, puoi reinstallare via FTP il tema originale, utilizzando la versione non modificata ovviamente.
rob
Ciao Rob, grazie della risposta tempestiva, quindi basta che copi i file modificati e incollarli nella cartella child, devo fare questo anche per le cartelle images, font ecc? Non faccio prima a copiare tutto il contenuto della cartella Fashionista nel tema child? Che dici?
No, copiare tutto significa portarsi dietro il vecchio tema, che annullerebbe il vantaggio di avere un tema child.
rob
Buongiorno Roberto
Ho copiato nel tema child il footer, l’header, l’index.php e style.css, se non erro, correggimi se sbaglio, le immagini che ho inserito nei post e in prima pagina non dovrebbero essere nel tema, quindi non rischio di perdere tutto, gli slide che ho inserito sono nella cartella oqey gallery, sempre fuori dalla cartella tema, e anche questi sono salvi. Mi chiedo, tutte le pagine che ho creato e i post, sono nel tema o anche quelli sono fuori e quindi non subiranno modifiche in caso di aggiornamento?
Ho bisogno di fare urgentemente l’aggiornamento al tema Fashionista perchè se ho bisogno di caricare un immagine in una pagina o in un post (al momento ci sono solo slide) nel pannello admin me la fa vedere ma se la pubblico no, quindi ci deve essere un file corrotto nel tema ma non so quale è.
Ho il terrore, nel fare l’aggiornamento di perdere tutto il lavoro fatto…
Pagine e post sono nel database, non hanno niente a che vedere con il tema, non vengono cancellate aggiornando il tema.
Prima di aggiornare il tema, però, fai sempre un bel backup di files e database, che non si sa mai 😉
rob
Ecco ora sono terrorizzata che vada male, ma può un aggiornamento di un tema mandare a rane tutto anche il db?
Ma no dai, di solito fila tutto liscio.
I temi interagiscono con il database a vario titolo, i temi più complessi anche in modo importante, ma di solito non sono i dati che possono compromettere il funzionamento del tutto.
Chiaro che, per la famosa legge di Murphy, un bel backup è per lo meno consigliabile! 😉
rob
Bene, sto facendo il backup di tutto dopodiche inizierò il calvario del’installazione dell’aggiornamento, ho notato che se attivo il tema child non mi appare la barra nera del search che c’è in alto a dx, come posso fare?
Forse con il child devi reimpostare menu e/o widget.
rob
Aggiornamento installato, non credo ai miei occhi…funziona tutto perfettamente!!!
Grazie mille Roberto!
Ne sono lieto 😉
rob
domanda: io creo la cartella child copio il file footer.php (o un qualunque altro file) nella stessa posizione e modifico il codice che mi serve. il giorno dopo l’autore del template modifica il file footer.php perchè magari non visualizzava bene i tasti dei social a pie pagina. aggiornando il template wp legge il mio file “obsoleto” o il nuovo aggiornato? e se legge il mio obsoleto, che senso ha il child-theme?
Se lo sviluppatore apporta profonde modifiche ad un file del template, è chiaro che sarebbe il caso di riadattare anche la versione del child. Ma dato che non tutti i file vengono modificati ad ogni aggiornamento, ed in particolare il footer.php, possibile che la versione child continui ad andare bene.
Io quando vengono rilasciati aggiornamenti dei temi vado sempre a controllare come e dove sono stati modificati, gli sviluppatori seri rilasciano sempre un changelog dettagliato, e da qui capisci se è il casi di apportare modifiche anche al tema child.
Il tema child ha senso nella misura in cui tu effettui modifiche strutturali importanti, che verrebbero vanificate durante gli aggiornamenti se vengono apportate al tema originale.
Ha poco senso usare un tema child quando per le modifiche utilizzi le possibilità offerte dal tema, tramite pannello di controllo, visto che queste dovrebbero (sottolineo dovrebbero) essere mantenute, o quando vengono modificati solo gli stili CSS, visto che la maggior parte dei temi prevede un’opzione per i custom CSS.
rob
rob
Buongiorno e grazie per le indicazioni, solo una domanda premettendo che sono un absolute beginner… La mia difficoltà maggiore è individuare, nel file CSS del file padre, le porzioni di codice da modificare nel figlio. Il tutto è dovuto al fatto che ho scarse, se non nulle, conoscenze dei CSS e chiedevo se esista uno strumento che possa aiutare. Ho provato con Firebug ma onestamente non ho cavato un ragno dal buco. esiste qualcosa di similare ma più intuitivo tipo per dummies, che punto col mouse sull’elemento e visualizzo la parte di codice che lo definisce?
Grazie
I browser recenti (Firefox, Chrome e Safari, Explorer non so perché non lo considero) possiedono tutti la possibilità di fare un’ispezione degli elementi che mette in risalto le caratteristiche legate ai CSS. Con Chrome basta selezionare l’elemento desiderato e scegliere “ispeziona elemento”, con Firefox c’è un’opzione analoga ma secondo me è meno intuitiva.
Poi ci sono un sacco di estensioni che aiutano, come Stylebot per Chrome ad esempio.
rob
grazie, era proprio quello che mi serviva. seguito i tuoi consigli in questa mezzanotte silenziosa e in dieci minuti fatto 😉
un abbraccio da castenaso city
-marco
Mitico Marco! Sono felice di esserti stato d’aiuto! 😉
rob
ciao Rob,
ho seguito tutti i tuoi consigli sull’installazione del child theme.
Premetto che sto eseguendo tutto in localhost, e succede che quando attivo il child theme mi scompare il menù del sito. inoltre leggo questo testo : Questo tema figlio richiede il proprio tema padre, xxxx.
Ciao a te.
Il fatto che ti dica che il tema figlio richiede il tema genitore è normale, l’importante è che non ti segnali problemi.
Anche la scomparsa dei menu potrebbe essere normale, con alcuni temi lo fa e devi andare a riconfigurarli.
rob
ciao, grazie per la tua guida. ho un problema però, ho provato a fare un tema child con EVOLVE ma non è uguale al tema padre, perde alcune caratteristiche di impaginazione, ho provato ad importare altri file css ma nulla…c’è qualche restrizione dell’autore o sbaglio qualcosa.
grazie ancora
Alcuni temi in effetti riescono a complicare la vita con i child. In gerere, quando capita, gli sviluppatori indicano, nei vari readme che accompagnano il tema, se e come sia possibile realizzare un child, quali accortezze e istruzioni bisogna seguire, etc.
Talvolta, sul sito dello sviluppatore del tema, è presente un tema child preconfezionato da scaricare.
In alcuni casi è sufficiente omettere la riga di inclusione del foglio di stile originale, in altri invece occorre ripetere, correggendo i path, le eventuali inclusioni a loro volta presenti sempre nel foglio di stile originale.
A volte, purtroppo, alcuni temi davvero sembra non ne vogliano sapere. Pochi, per fortuna…
rob
grazie!!! almeno ho capito che mi conviene cambiare tema…non riesco in nessun modo a creare un figlio identico al padre…
ciao
Sei sicuro di aver fatto bene il tema child? se mi dai un link provo a vedere se qualcosa non mi torna…
sto lavorando in locale…considera che sono alle primissime armi e che non ho conoscenze tecniche. ho creato una cartella con un file css:
/*
Theme Name: Ass.DipENDeda-evolve
Description: Child theme for the evolve
Author: dipendeda
Template: evolve
Version: 0.1
*/
@import url( ‘../evolve/style.css’ );
così è quasi uguale ma si sono scomposte le immagini i di testata non funzionando più lo scorrimento.
mmm… in locale è sempre un’incognita, specie con i percorsi dei file.
hai provato a mettere invece che il path relativo (../evolve/style.css) quello assoluto (/percorso_sul_disco/evolve/style.css)?
rob
si è vero anch’io ho avuto un problema simile ma per un altro motivo e sistemando il percorso ho risolto!
Comunque complimenti per l’articolo è davvero molto utile credevo che fosse molto più complicato di così!
Ciao! E’ possibile copiare il file style.css del tema genitore nel tema child (quindi senza importarlo) e fare le modifiche direttamente sul file style.css del tema child?
Dipende, a volte (quasi sempre nei temi professionali) nei file CSS ci sono dei path ad altri files che rischieresti di perdere causando dei malfunzionamenti nel tema.
rob
Ok, quindi conviene sempre importare il file style.css come hai indicato tu.
Ma ad esempio posso copiare (o anche solo guardare un pezzo di codice di riferimento) nel file style.css del tema genitore (quindi aprendolo senza salvarlo) e poi copiarlo nel file style.css del tema child?
Si certo, puoi aggiungere nuovi stili oppure puoi copiare gli stili esistenti nel file originale per modificarli a tuo piacere.
Se lo stesso stile è presente sia nel tema originale che nel tema child, viene applicato quello del tema child.
rob
Ciao Rob,
seguendo la tua guida ho cercato di creare un tema figlio di wp slash di Theme forest, facendo un override del file style.css che sta nella cartella principale. Al momento dell’ attivazione del tema figlio mi rende un errore che ti incollo qui sotto:
Warning: require_once(/home/a3773040/public_html/wp-content/themes/dt-slash-gattidesign/plugins/options-framework/admin/options-framework.php) [function.require-once]: failed to open stream: No such file or directory in /home/a3773040/public_html/wp-content/themes/dt-slash/plugins/options-framework/functions.php on line 19
Sia nella visualizzazione del sito, sia nel pannello di amministrazione, rendendomi impossibile fare qualunque cosa a parte disinstallare tutto il tema figlio e tutto il tema padre e reinstallando solo il tema padre per tornare ad avere visione del pannello amministrazione e sistemare la visione del sito.
Sai perchè succede una cosa simile?
Grazie! 😀
Modifico il commento precedente: sono completamente bloccato. Devo disinstallare tutto. XD Disastro..
In genere, in questi casi, basta andare via FTP e spostare/cancellare il tema child o, se serve, anche il genitore, e tutto torna a funzionare con il tema di default di WordPress.
Sul perché è difficile dirlo, forse il tema non digerisce bene i child, o forse i child per quel tema richiedono informazioni particolari.
hai letto la documentazione del tema per sapere se occorre prendere particolari accorgimenti per fare un child?
Quando hai fatto il child, hai messo solo il file style.css?
Ciao Roberto.
Ho installato un tema, tal Replay di theme forest, ma caricandolo via ftp (perchè con il caricamento diretto da wordpress, neppure mi permette di farlo) mi da il seguente errore:”Il seguenti temi risultano installati ma sono incompleti. I temi devono avere un foglio di stile e un template”. Potresti darmi una mano? Grazie
Andrea
Tante volte, nel file compresso che scarichi dai vari venderà di temi, non c’è il tema vero e proprio ma devi cercarlo in qualche cartella interna, ed è quella che devi caricare.
Rob
ho caricato tutta la cartella, all’interno della quale ci sono delle sotto cartelle denominate:images, languages, js..ecc..ed inoltre tutti i file php del tema. A dire il vero, c’è anche un file css denominato style. Quindi perchè wordpress mi dice che è mancante?
Grazie
Senza vederlo a questo punto mi è davvero difficile risponderti, forse una questione di permessi, forse qualche file del tema corrotto.
rob
Quando attivo il tema child…..mi dice
Tema corrente
Twenty Ten child theme
Questo tema figlio richiede il proprio tema padre, Twenty Ten/Twentyten.
Salve a tutti qualcuno mi sa aiutare????
Perche’ mi appare quel messaggio dopo aver creato un child theme con tutti i passaggi giusti’!?
Grazie mille Daniela
Hai sicuramente scritto male il nome del template nel css del tema child.
Se usi Twenty Ten come tema genitore, ed hai lasciato con i nomi e i percorsi originali le cartelle dei temi, nel css del tema figlio devi modificare la riga Template così:
Template: twentyten
e controlla anche che l’import sia corretto, così:
@import url("../twentyten/style.css");
rob
Grazie lper la tua risposta immediata,
/*
Theme Name: Twenty Eleven Child
Theme URI: ………………………………..
Description: Tema Child per Twenty Eleven
Author: ………………………………
Template: twentyeleven
Version: 1.5
*/
@import url(“../twentyeleven/style.css”);
Questo e’ quello che ho scritto!
Mi sembra scritto bene!!!
Perche’????
si, a vedere da quello che posto sembra scritto bene, anche se l’errore sembrava riguardare proprio quello. dovrei vedere il blog per cercare di dirti di più.
petta, nell’errore parla di twenty ten, mentre nel child link il twenty eleven… c’è qualcosa che non torna
Buongiorno e complimenti per il bel sito.
Per piacere, può darmi semplici e dettagliate spiegazioni su come replicare lo screenshot? Dove si trova precisamente quello originario? Bisogna creare una cartella? ecc. Grazie. Molti cordiali saluti. BB
Lo screenshot originario è il file screenshot.png che si trova dentro la cartella del tema originale.
Per replicarlo, ossia fare in modo che il tema child abbia lo stesso screenshot del tema genitore, basta prendere quel file e copiarlo nella cartella del tema child.
Non serve creare nessuna cartella, basta copiarlo nella cartella principale del tema child.
rob
Dunque, ho comparato un tema dotato di tema genitore e tema child. In locale ho installato solo il tema genitore e impostato tutto il layout, installato alcuni plugins. Poi ho scoperto che in realtà bisognava installare sia il tema genitore che il figlio e poi attivare solo il figlio anche perchè adesso dovrei modificare un codice. Quindi non so come risolvere questo problema…spero tanto di essere stata chiara. Il tema non è stato caricato in FTP ma con il normale upload su wordpress. Utilizzo xampp.
Grazie
si, devi installare entrambi, tema genitore e tema child, ma quest’ultimo praticamente è una cartella con pochi file, anche uno solo, e poi attivare il child.
se hai fatto delle modifiche nelle impostazioni tramite interfaccia, ossia nella configurazione del tema nella bacheca, mi sa che ti tocca rifarle non appena hai rimesso in piedi la configurazione ideale.
se invece hai modificato fisicamente i file del tema genitore, es, index.php o single.php, anche qui tocca che le rifai, ma sul tema child mi raccomando.
rob
Ciao Rob!
Grazie per questo articolo illuminante. Sto testando in locale un tema che ho comprato, dotato sia del tema genitore che del child. Purtroppo ho erroneamente lavorato sul tema padre, anche se non ho modificato il codice. Adesso mi chiedo, come faccio a installare il tema child? Insomma, come faccio a risolvere il problema?
Avevo anche creato un altro database, caricato il tema genitore, ma quando ho cercato di caricare anche il tema child mi ha dato errore dicendo che la cartella esisteva già.
Potresti aiutarmi perfavore?
Grazie mille
Perdonami Sofia, ma credo di non capire bene la domanda.
Se non hai lavorato sui files del tema genitore, cosa intendi per “averci lavorato”?
Se l’errore di caricamento del tema child riguarda l’FTP, o il posizionamento del tema child nella cartella Themes in locale, probabilmente è perché esisteva ancora una cartella con quel nome.
Prova a spiegarmi meglio…
rob
Grazie Rob!
Ora ho un po di informazioni in più su cui lavorare.
PS
Se hai qualche dritta per qualche tema adatto ad un blog fotografico sono tutto orecchie.
ma guarda, temi ce ne sono a sbizzarrirsi, io di solito guardo ormai solo quelli di sviluppatori come woo themes o wpzoom, che con pochi euro danno prodotti ottimi e li aggiornano. Nei loro cataloghi ce ne sono anche di validi e gratuiti
rob
Per INCLUDE intendi questa frase?
@import url(“../twentyten/style.css”);
Mi confermi che per lo stile di default (twentyten) è sufficiente farlo solamente per il foglio stile principale e cioè “style.css”.
Non ho capito un’altra cosa…
Se devo modificare un pezzzo di codice, per esempio della header.php, mi debbo creare una header.php nel tema child ed inserire solo il pezzo di codice modificato?
Scusa Rob… sono un po impedito.
sì, mi pare che per il twenty ten sia abbastanza il foglio di stile principale.
no, devi copiare nella cartella del tema figlio il file header.php completo dal tema originale, quindi modificarlo.
rob
il fatto che in un tema ci siano più fogli di stile è abbastanza normale, il principale comunque è quel style.css che viene richiamato anche dai temi figli.
se fai un tema figlio e modifichi i file nel tema padre perdi praticamente tutti i vantaggi di aver fatto un tema figlio, le modifiche ti verranno cancellate all’eventuale primo aggiornamento del tema
rob
Allora… sto cercando di modificare il tema di default di WP e ho visto che ci sono diversi fogli di stile…. serve questo “INCLUDE”? Se si…. cosa sarebbe?
Scusa ROb se ti strizzo un pochino! 🙂
OK per gli altri file… allora se aggiorneranno il tema dovrò stare attento che i file che modificherò non vengano aggiornati.
dimenticavo… l’include è necessario per dire al tema figlio su quale stili deve basarsi, riferiti al tema padre.
in questo modo se lo stile genitore include altri fogli di stile, questi dovrebbero essere utilizzati anche dal figlio. occhio pero’ che alcuni mettono dei percorsi annidati per gli stili extra, e questo potrebbe confondere, e allora conviene mettere un include diretto anche sullo stile del tema figlio.
rob
Ciao Rob e buona Pasqua…
Volevo chiederti….
Se il tema principale ha più fogli di stile devo ripetere per ognuno l’intestazione che hai messo TU in alto?
E se volessi modificare una pagina template cosa faccio? devo iniziare la pagina in qualche modo particolare?
Ciao Max, auguri anche a te.
Che intendi per intestazione? non è che ti riferisci alla barra di controllo che inserisce automaticamente wordpress nuova versione quando sei loggato?
rob
Scusa Rob… mi sono spiegato male.
Se ho più di un foglio di stile ne devo ricreare altrettanti e tutti con questa intestazione che hai inserito all’inizio?
/*
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”);
Naturalmente variando l’URL.
Per quanto riguarda gli altri FILE come. ad esempio, la HEADER, si devono duplicare totalmente e poi fare le modifiche o inserire solamente il codice modificato nel nuovo file?
Dipende da come hai strutturato il tema figlio, se i fogli di stile sono indipendenti l’uno dall’altro devono ovviamente avere i riferimenti del tema padre, se invece sono legati tra loro basta un include che li accorpi. Spero di aver capito la domanda.
Il file header o si trova nella cartella del figlio altrimenti viene caricato quello del padre.
rob
Vorrei ringraziare tantissimo l’autore di questo articolo, molto chiaro ed efficace: grazie tante davvero!
Grazie a te 🙂
rob
Ho risolto ma non ho più utilizzato il Child.
Ci sono infatti alcuni elementi del tema di default della WP 3.0.1. (Parent: genitore) che non compresi nel mio tema child (figlio) (perchè all’origine mancano proprio dal tema Kubrick) vanno a modificare alcune funzionalità del tema, creando questi malfunzionamenti, ossia:
— Post sballati se si clicca su categorie o tag (category.php e tag.php che esistono in WP 3.0.1. ma non in WP 2.9.1) es: http://www.guidaolanda.it/blog/category/senza-categoria/
— Foto sballate nella PhotoGallery (PhotoGallery.php che esiste in WP 3.0.1. ma non in WP 2.9.1)
— Restituzione di errore per tentativi di ricerca di stringe inesistenti nel blog (search.php diverso tra WP 3.0.1. e WP 2.9.1)
Esiste comunque una soluzione con la creazione di nuovi file loop-category.php, loop.php, e loop-search.php ma non ho capito come farli funzionare (ho ancora uno dei 2 spazi di test dove ho inziato a fare questi esperimenti per il child) e per i quali non ho avuto risposta dal forum internazionale ufficiale di WP
Per maggiori dettagli trovi tutto sul forum ufficiale di assistenzadi WP Italia: http://www.wordpress-it.it/forum/topic/15737?replies=6
Io temo che il tuo problema nasca dal voler mescolare temi diversi, come quello nuovo di default e il vecchio kubrick. È assai difficile possano convivere, le funzioni sono diverse e di qui gli errori.
Non puoi usare pezzi di altri temi per fare il child di un tema diverso, a meno di non adattarne tutte le funzionalità, ma mi sembra un macello…
rob
Approfondendo mi sono accorto di uno STRAVOLGIMENTO TOTALE !
Potrei provare a fare l’upgrade sul blog ufficiale ma ho il terrore che accada qualcosa sulla parte pubblica che non riuscirei a sistemare (o per lo meno in tempi brevi). Ecco perchè provare su uno spazio web di test prima.. prevenire è meglio che curare 🙂
Dopo diverse peripezie sono riuscito ad ottenere finalmente quello che volevo (tema originario con le personalizzazioni) come puoi vedere di qui dallo spazio web di test: http://www.guidaolanda.it/blog/
ma ci sono problemi sulla
– http://www.guidaolanda.it/blog/photogallery/ (non ci sono più le foto di http://www.blogolanda.it/photogallery/ nonostante le avessi uploadate in remoto con la stessa disposizione in cartella uploads)
– sulla funzione di ricerca generica in risposta ad una richiesta di stringa non trovata nel blog
– sulla disposizione dei post quando clicchi su http://www.guidaolanda.it/blog/category/senza-categoria/ o su
http://www.guidaolanda.it/blog/tag/prova/
Infatti per gli ultimi 3 ho scoperto che occorre anche personalizzare i file “search.php”, “category.php” e “tag.php”. Quest’ultimi 2 completamente assenti dal precedente tema Kubrick
Quindi usando il tema child (e se riuscissi mi preserverebbe nel futuro da potenziali stravolgimenti futuri ad opera di WP)
anche se ho sovrapposto in WP 3.0.1. tutto il tema Kubrick che avevo con la versione precedente rimangono scoperti “search.php”, “category.php” e “tag.php” che hanno effetto sul tema di test e che fanno sballare i post.
Alternative:
1) devo provare su un altro spazio web di test a installare su Wp 3.0.1. come tema principale Kubrick (ma devo capire come translare poi il backup dalla vecchia versione per provare poi a fare l’aggiornamento da Wp. 2.9.1. a Wp 3.0.1. il mio hosting mi impedisce di creare un nuovo db con il nome del db backuppato e quindi non funzia) prima di farlo sul blog ufficiale e non avere problemi sulla parte pubblica
2) lasciare il nuovo tema di default “twenty ten” su Wp. 3.0.1. ma questo comporterebbe rifare tutta una serie di personalizzazioni, reimpostazioni e perderei meno tempo invece con l’alternativa 1 (se riuscisse) e poi per riportare articoli e commenti come fare se non funzia il restore del bck ?
No Robrota..
L’intento è quello di utilizzare il tema Kubrik su WP 3.0.1.
facendo prima l’upgrade a questa versione e poi nel creare tramite un child theme il tema Kubrik, quindi installare questo nuovo tema
Il problema sta nel capire cosa mai potrebbe accadere soprattutto dal lato pubblico dopo aver installato WP 3.0.1. con delle impostazioni che proverranno da un tema che in precedenza (Wp 2.9.1.) era di Kubrick
L’ho chiesta sul forum ufficiale di WP
http://wordpress.org/support/topic/how-can-i-come-back-to-kubrik-with-the-twentyten-theme-sidebarphp?replies=4#post-1678063
stavo per risponderti sulla questione dei child, sul fatto che i temi figli non devono essere sottocartelle dei padri ma allo stesso livello.
rob
Per il 2° post, grazie ad un amico ho trovato l’errore
– \wp-content\themes\twentyten\twentyten-child NO
— \wp-content\themes\twentyten-child SI
Quando puoi, volevo sapere cosa ne pensi della mia idea (2 commenti prima)
Grazie e buon proseguimento
Ho fatto una prova ma l’admin non rileva nessun nuovo tema disponibile per attivarlo
Ho creato la nuova cartella
– \wp-content\themes\twentyten\twentyten-child
– ci ho messo dentro style.css con queste info, volendo solo provare a cambiare il colore
/*
Theme Name: Twenty Ten Child
Theme URI: http://www.guidaolanda.it/blog/
Description: Child theme for the Twenty Ten theme
Author: Your name here
Template: twentyten
*/
@import url(“../twentyten/style.css”);
#site-title a {
color: #009900;
}
Istruzioni da http://codex.wordpress.org/Child_Themes
Using a child theme, all it takes is three simple steps:
1. Make a new directory in wp-content/themes, and name it twentyten-child (or anything you like).
2. Save the code below in a file named style.css, and drop this file in the new directory.
3. Go to Dashboard › Themes and activate you new theme, the Twenty Ten Child.
Grazie per il riscontro..
Quindi volendo avere il tema default Kubrick Wp 2.9.1. in presenza di quello WP 3.0.1. pensavo se potevo
1…) aggiornare tradizionalmente via ftp alla WP 3.0.1 e subito dopo
2) con il Child andare a implementare css (senza l’importazione del css parent con url visto che i css del Kubrick e quelli del “Twenty Ten” sono totalmente differenti, anzi nel css child ci mettevo tutto quello che avevo con il default Kubrick Wp 2.9.1.) e le parti modificate (quindi copio sidebar.php WP 3.0.1 “Twenty Ten” e modifico questo in Child per renderlo uguale al tema Default Kubrick ) rispetto al parent andandole a prendere dal default Kubrick Wp 2.9.1.
Avrò per un attimo qualche casino dal lato pubblico.. ma se predispongo tutto prima potrò riparare il danno temporaneo in breve tempo.. il problema è che non posso testarlo.. nel senso che perderei troppo tempo installare WP 2.9.1. sullo spazio di test e poi fare quello che ti ho riferito su passando poi a W. 3.0.1.
Cosa ne pensi ?
non ho capito bene, vorresti mescolare temi e css? non mi pare un’idea molto felice
rob
Ciao complimenti per la chiarezza nell’esposizione..
Dalla 2.9.1. per passare alla 3.0.1. sono costretto ad utilizzare i tuoi suggerimenti e non dovendo utilizzare i widget mi domandavo se potevo copiare nella sottocartella child la sidebar.php che ho usavo prima con il tema default Kubrick in cui appunto li disattivavo
se continui ad usare il kubrick puoi tranquillamente fare un tema figlio e copiarci la sidebar.php. tutto quello che copi nella cartella del figlio viene letto e assunto, quello che non c’è viene rimandato al tema genitore.
rob
Grazie, grazie, grazie!
Sei stato prezioso…
Appuntamento alle prossime chicche!