Articles

WordPress.org (Italiano)

Posted by admin

Un tema figlio ti consente di modificare piccoli aspetti dell’aspetto del tuo sito, pur mantenendo l’aspetto e la funzionalità del tuo tema. Per capire come funzionano i temi figlio è prima importante capire la relazione tra i temi genitore e figlio.

Che cos’è un tema genitore? # Che cosa è un tema genitore ?

Un tema genitore è un tema completo che include tutti i file di template WordPress necessari e le risorse per il tema di lavorare., Tutti i temi-esclusi i temi figlio-sono considerati temi genitore.

Top

Che cos’è un tema figlio? # Che cosa è un tema bambino ?

Come indicato nella panoramica, un tema figlio eredita l’aspetto del tema padre e tutte le sue funzioni, ma può essere utilizzato per apportare modifiche a qualsiasi parte del tema. In questo modo, le personalizzazioni vengono mantenute separate dai file del tema principale. L’utilizzo di un tema figlio consente di aggiornare il tema padre senza influire sulle personalizzazioni apportate al sito.,

Bambino temi:

  • effettuare le modifiche portatile e replicabili;
  • tenere la personalizzazione separato dal tema principale funzioni;
  • lasciare che il genitore temi per essere aggiornato senza distruggere la vostra modifiche;
  • consente di sfruttare lo sforzo e prova a mettere in tema genitore;
  • risparmiare sui tempi di sviluppo, dal momento che non sono ricreare la ruota; e
  • sono un ottimo modo per iniziare a conoscere lo sviluppo del tema.,
Nota: Se si stanno facendo ampie personalizzazioni – al di là di stili e alcuni file di tema – la creazione di un tema genitore potrebbe essere un’opzione migliore di un tema figlio. La creazione di un tema padre consente di evitare problemi con il codice deprecato in futuro. Questo deve essere deciso caso per caso.

Top

Come creare un tema figlio #Come creare un tema figlio

Creare una cartella tema figlio #1. Creare una cartella tema figlio

Innanzitutto, creare una nuova cartella nella directory temi, che si trova inwp-content/themes.

La directory ha bisogno di un nome., È consigliabile dare a un tema figlio lo stesso nome del genitore, ma con -child aggiunto alla fine. Ad esempio, se si crea un tema figlio di twentyfifteen, la directory verrà denominata twentyfifteen-child.

Top

Crea un foglio di stile: stile.css #2. Crea un foglio di stile: stile.css

Successivamente, dovrai creare un file di foglio di stile denominatostyle.css, che conterrà tutte le regole e le dichiarazioni CSS che controllano l’aspetto del tuo tema., Il tuo foglio di stile deve contenere il seguente commento di intestazione richiesto nella parte superiore del file. Questo dice a WordPress informazioni di base sul tema, incluso il fatto che si tratta di un tema figlio con un particolare genitore.

Espandi codice sorgente completocollapse codice sorgente completo

Sono necessarie le seguenti informazioni:

  • Nome del tema – deve essere univoco per il tema
  • Modello – il nome della directory principale del tema. Il tema principale nel nostro esempio è il tema Twenty Fifteen, quindi il modello sarà twentyfifteen., Si può lavorare con un tema diverso, in modo da regolare di conseguenza.

Aggiungere le informazioni rimanenti a seconda dei casi. L’unico file del tema figlio richiesto è style.css, ma funzioni.php è necessario per accodare correttamente gli stili (sotto).

Top

Enqueue foglio di stile #3. Enqueue Stylesheet

Il passo finale è accodare i fogli di stile del tema genitore e figlio, se necessario.

Nota: In passato, il metodo comune era importare il foglio di stile del tema principale usando @importall’interno di style.css., Questa non è più la pratica consigliata, in quanto aumenta la quantità di tempo necessario per caricare i fogli di stile. Inoltre è possibile che il foglio di stile genitore venga caricato due volte.

Il modo ideale per accodare i fogli di stile è che il tema genitore carichi entrambi (genitore e figlio), ma non tutti i temi lo fanno. Pertanto, è necessario esaminare il codice del tema genitore per vedere cosa fa e per ottenere il nome dell’handle utilizzato dal tema genitore. L’handle è il primo parametro di wp_enqueue_style().,

Ci sono alcune cose da tenere a mente:

  • il tema figlio viene caricato prima del tema genitore.
  • tutto è collegato a un’azione con una priorità (il valore predefinito è 10) ma quelli con la stessa priorità vengono eseguiti nell’ordine in cui sono stati caricati.
  • per ogni handle, solo la prima chiamata a wp_enqueue_style() è rilevante (altri ignorati).
  • il parametro di dipendenza diwp_enqueue_style() influenza l’ordine di caricamento.
  • senza un numero di versione, i visitatori del sito avranno tutto ciò che il loro browser ha memorizzato nella cache, invece della nuova versione.,
  • utilizzando una funzione per ottenere la versione del tema restituirà la versione del tema attivo (figlio se c’è un figlio).
  • le funzioni denominateget_stylesheet * cercano prima un tema figlio e poi il genitore.

Il modo consigliato per accodare i fogli di stile è aggiungere un’azione wp_enqueue_scriptse usare wp_enqueue_style()nel tema del tuo bambino functions.php.
Se non ne hai uno, crea un functions.php nella directory del tuo tema figlio., La prima riga del tema figlio functions.php sarà un tag PHP di apertura (<?php), dopo di che puoi scrivere il codice PHP in base a ciò che fa il tuo tema genitore.

Se il tema padre carica entrambi i fogli di stile, il tema figlio non ha bisogno di fare nulla.

Se il tema padre carica il suo stile usando una funzione che inizia conget_template, comeget_template_directory()eget_template_directory_uri(), il tema figlio deve caricare solo gli stili figlio, usando l’handle del genitore nel parametro dipendenza.,

Se il tema padre carica il suo stile usando una funzione che inizia conget_stylesheet, comeget_stylesheet_directory()eget_stylesheet_directory_uri(), il tema figlio deve caricare entrambi i fogli di stile padre e figlio. Assicurarsi di utilizzare lo stesso nome di handle del genitore per gli stili padre.

Espandi codice sorgente completocollapse codice sorgente completo

Top

Installa tema figlio #4. Installa tema figlio

Installa il tema figlio mentre installi qualsiasi altro tema., È possibile copiare la cartella nel sito tramite FTP, o creare un file zip della cartella tema figlio, scegliendo l’opzione per mantenere la struttura delle cartelle, e fare clic su Aspetto > Temi > Aggiungi nuovo per caricare il file zip.

Top

Attiva il tema figlio # 5. Attiva tema figlio

Il tema figlio è ora pronto per l’attivazione. Accedi alla schermata di amministrazione del tuo sito e vai alla schermata di amministrazione> Aspetto> Temi., Dovresti vedere il tuo tema figlio elencato e pronto per l’attivazione. (Se l’installazione di WordPress è multi-sito abilitato, allora potrebbe essere necessario passare alla schermata di amministrazione di rete per abilitare il tema (all’interno della scheda schermata Temi amministratore di rete). Puoi quindi tornare alla schermata di amministrazione di WordPress specifica del tuo sito per attivare il tuo tema figlio.)

Nota: potrebbe essere necessario salvare nuovamente il menu dall’aspetto > Menu e opzioni del tema (incluse immagini di sfondo e intestazione) dopo aver attivato il tema figlio.,

Top

Aggiunta di file modello #Aggiunta di file modello

Diverso dal file functions.php (come indicato sopra), qualsiasi file aggiunto al tema figlio sovrascriverà lo stesso file nel tema genitore.

Nella maggior parte dei casi, è meglio creare una copia dei file di modello che si desidera modificare dal tema principale, quindi apportare le modifiche ai file copiati, lasciando invariati i file padre., Ad esempio, se si desidera modificare il codice del file header.php del tema principale, è necessario copiare il file nella cartella del tema figlio e personalizzarlo lì.

Suggerimento: ci sono diversi plugin che consentono di rilevare quale modello specifico viene utilizzato nella pagina in cui si sta cercando.

  • Quale file
  • Quale file modello sto visualizzando?
  • Debug Bar

È inoltre possibile includere file nel tema figlio che non sono inclusi nel tema padre., Ad esempio, potresti voler creare un modello più specifico di quello che si trova nel tuo tema principale, ad esempio un modello per una pagina specifica o un archivio di categorie (ad esempio page-3.php caricherebbe per una pagina con l’ID di 3.

Vedere la pagina Gerarchia dei modelli per ulteriori informazioni su come WordPress determina quale modello utilizzare.

Top

Utilizzo delle funzioni.php # Usando le funzioni.php

A differenza distyle.css,functions.php di un tema figlio non sovrascrive la sua controparte dal genitore. Invece, viene caricato in aggiunta alle funzioni del genitore.,PHP. (In particolare, viene caricato proprio prima del file del genitore.)

In questo modo, functions.php di un tema figlio fornisce un metodo intelligente e senza problemi per modificare la funzionalità di un tema padre. Dì che vuoi aggiungere una funzione PHP al tuo tema. Il modo più veloce sarebbe aprire il suo file functions.php e mettere la funzione lì. Ma non è intelligente: la prossima volta che il tema viene aggiornato, la funzione scomparirà., Ma c’è un modo alternativo che è il modo intelligente: puoi creare un tema figlio, aggiungere un file functions.php e aggiungere la tua funzione a quel file. La funzione farà lo stesso identico lavoro anche da lì, con il vantaggio che non sarà influenzata dai futuri aggiornamenti del tema genitore. Non copiare il contenuto completo delle funzioni.php del tema genitore in funzioni.php nel tema figlio.

La struttura di functions.php è semplice: un tag PHP di apertura in alto, e sotto di esso, i tuoi bit di PHP. In esso puoi mettere tutte le funzioni che desideri., L’esempio seguente mostra un file functions.php elementare che fa una cosa semplice: aggiunge un link favicon all’elemento head delle pagine HTML.

Suggerimento: Il fatto che le funzioni di un tema figlio.php viene caricato per primo significa che puoi rendere le funzioni utente del tuo tema collegabili-cioè sostituibili da un tema figlio— dichiarandole condizionatamente.

if ( ! function_exists( 'theme_special_nav' ) ) { function theme_special_nav() { // Do something. }}

In questo modo, un tema figlio può sostituire una funzione PHP del genitore semplicemente dichiarandolo in anticipo.,

Per ulteriori informazioni su cosa includere nel file functions.php del tema figlio, leggere la pagina Funzioni tema.

Top

Riferimento o inclusione di altri file #Riferimento o inclusione di altri file

Quando è necessario includere file che risiedono all’interno della struttura di directory del tema figlio, è necessario utilizzare get_stylesheet_directory(). Poiché style.css si trova nella radice della sottodirectory del tema figlio, get_stylesheet_directory() punta alla directory del tema figlio (non alla directory del tema padre)., Per fare riferimento alla directory del tema principale, utilizzare invece get_template_directory ().

di Seguito è un esempio che illustra come utilizzare get_stylesheet_directory() quando si fa riferimento a un file memorizzato all’interno del tema figlio directory:

<?php require_once( get_stylesheet_directory(). '/my_included_file.php' ); ?>

nel Frattempo, in questo esempio si utilizza get_stylesheet_directory_uri() per visualizzare un’immagine che viene memorizzato all’interno del /images cartella del tema figlio directory.,

<img src="https://developer.wordpress.org/themes/advanced-topics/child-themes/<?php echo get_stylesheet_directory_uri(); ?>/images/my_picture.png" alt="" />

Top

Enqueueing Styles and Scripts #Enqueueing Styles and Scripts

Gli script e gli stili dovrebbero essere accodati ciascuno con la propria funzione, e quindi questi dovrebbero essere racchiusi in un’azione. Per ulteriori informazioni, leggere la pagina su Inclusi CSS e JavaScript.

WordPress non caricherà automaticamente il foglio di stile per il tema del tuo bambino sul front-end. Di seguito è riportato un esempio di utilizzo del gancio di azione wp_enqueue_scripts() per chiamare una funzione che accoda il foglio di stile del tema figlio.,

Top

Considerazioni speciali #Considerazioni speciali

Top

Formati post #Formati post

Un tema figlio eredita i formati post definiti dal tema padre. Ma quando crei temi figlio, tieni presente che l’uso diadd_theme_support('post-formats') sovrascriverà i formati come definiti dal tema genitore, non aggiungerà ad esso.,

Top

RTL Supporto #RTL Supporto

Per il supporto a lingue RTL, aggiungere un rtl.css file sul tema bambino, che contiene:

/*Theme Name: Twenty Fifteen ChildTemplate: twentyfifteen*/

Anche se il tema principale non dispone di un rtl.css file, si consiglia di aggiungere il rtl.css file per il vostro bambino a tema. WordPress caricherà automaticamente il filertl.css solo seis_rtl() è true.,

Top

Internazionalizzazione #Internazionalizzazione

I temi figlio possono essere preparati per la traduzione in altre lingue utilizzando l’API di internazionalizzazione di WordPress. Ci sono considerazioni speciali per quanto riguarda l’internazionalizzazione dei temi del bambino.

Per internazionalizzare un tema figlio segui questi passaggi:
1. Aggiungere una directory lingue.

  • Ad esempio: twentyfifteen-child/languages/

2. Aggiungi file di lingua.,

  • I nomi dei file devono essere he_IL.po & he_IL.mo (a seconda della lingua), a differenza dei file plugin che sono domain-he_IL.xx.

3. Carica un textdomain

  • Usa load_child_theme_textdomain() infunctions.php durante l’azione after_setup_theme.
  • Il dominio di testo definito in load_child_theme_textdomain() deve essere utilizzato per tradurre tutte le stringhe nel tema figlio.

4. Utilizzare le funzioni GetText per aggiungere il supporto i18n per le stringhe.,

Esempio: textdomain #Esempio: textdomain

A questo punto, le stringhe nel tema figlio sono pronte per la traduzione. Per garantire che siano correttamente internazionalizzati per la traduzione, ogni stringa deve avere iltwentyfifteenchild textdomain.

Top

Esempio: gettext funzioni #Esempio: gettext funzioni

Ecco un esempio di eco la frase “il Codice è Poesia”

<?phpesc_html_e( 'Code is Poetry', 'twentyfifteenchild' );?>

Il testo di dominio definito in load_child_theme_textdomain() dovrebbe essere usato per tradurre tutte le stringhe in tema bambino., Nel caso in cui sia stato incluso un file modello dal loro genitore, il textdomain deve essere modificato da quello definito nel tema genitore a quello definito dal tema figlio.

Leave A Comment