o temă pentru copii vă permite să modificați aspecte mici ale aspectului site-ului dvs., dar să păstrați aspectul și funcționalitatea temei. Pentru a înțelege cum funcționează temele copilului, este mai întâi important să înțelegeți relația dintre temele părinte și copil.
ce este o temă părinte? #Ce este o temă părinte?
o temă părinte este o temă completă care include toate fișierele șablon WordPress necesare și activele pentru tema să funcționeze., Toate temele-cu excepția temelor pentru copii-sunt considerate teme pentru părinți.
Top
ce este o temă pentru copii? #Ce este o temă copil?
după cum este indicat în prezentare generală, o temă copil moștenește aspectul temei părinte și toate funcțiile sale, dar poate fi folosit pentru a face modificări la orice parte a temei. În acest fel, personalizările sunt păstrate separat de fișierele temei părinte. Utilizarea unei teme copil vă permite să actualizați tema părinte fără a afecta personalizările pe care le-ați făcut pe site-ul dvs.,
teme Copil:
- asigurați-vă modificări portabil și reproductibile;
- ține de personalizare separat de părinte tema funcții;
- permite părinte teme să fie actualizat, fără a-ți distruge modificări;
- vă permit să profite de efort și de testare a pus în temă părinte;
- salvare pe timp de dezvoltare din moment ce nu sunt recrearea roata; și
- sunt o modalitate foarte bună de a începe învățarea despre dezvoltarea temă.,Notă: Dacă faceți personalizări extinse-dincolo de stiluri și câteva fișiere tematice – crearea unei teme părinte ar putea fi o opțiune mai bună decât o temă copil. Crearea unei teme părinte vă permite să evitați problemele cu codul depreciat în viitor. Acest lucru trebuie decis de la caz la caz.
Top
cum se creează o temă pentru copii #cum se creează o temă pentru copii
creați un dosar pentru teme pentru copii #1. Creați un folder tematic pentru copii
Mai întâi, creați un folder nou în directorul teme, situat la wp-content/themes
.
directorul are nevoie de un nume., Este cea mai bună practică pentru a da o temă copil același nume ca părinte, dar cu -child
anexat la sfârșitul anului. De exemplu, dacă ați făcut o temă copil de twentyfifteen
, atunci directorul ar fi numit twentyfifteen-child
.
Top
creați o foaie de stil: stil.css #2. Creați o foaie de stil: stil.css
apoi, va trebui să creați un fișier de stil numit style.css
, care va conține toate regulile și declarațiile CSS care controlează aspectul temei dvs., Foaia dvs. de stil trebuie să conțină comentariul antetului necesar de mai jos în partea de sus a fișierului. Acest lucru spune WordPress informații de bază despre tema, inclusiv faptul că este o temă copil cu un anumit părinte.
extindeți codul sursă completcolapse codul sursă complet
următoarele informații sunt necesare:
- nume temă – trebuie să fie unic pentru tema
- șablon – numele directorului temă părinte. Tema părinte în exemplul nostru este tema douăzeci și cincisprezece, astfel încât șablonul va fi
twentyfifteen
., Este posibil să lucrați cu o temă diferită, deci ajustați în consecință.
adăugați informațiile rămase, după caz. Singurul fișier temă copil necesar este stilul.css, dar funcții.php este necesar pentru a inqueue stiluri corect (de mai jos).
Top
foaie de stil Enqueue # 3. Enqueue stylesheet
ultimul pas este de a enqueue părinte și copil foi de stil temă, dacă este necesar.
Notă: În trecut, metoda comună a fost de a importa tema părinte stil folosind @import
interior style.css
., Aceasta nu mai este practica recomandată, deoarece crește timpul necesar încărcării foilor de stil. În plus, este posibil ca foaia de stil părinte să se încarce de două ori.modul ideal de a inqueuing foi de stil este pentru tema părinte pentru a încărca atât (părinte și copil), dar nu toate temele face acest lucru. Prin urmare, trebuie să examinați codul temei părinte pentru a vedea ce face și pentru a obține numele mânerului pe care îl folosește tema părinte. Mânerul este primul parametru al wp_enqueue_style()
.,
există câteva lucruri de reținut:
- tema copil este încărcată înainte de tema părinte.
- totul este conectat la o acțiune cu prioritate (implicit este 10), dar cele cu aceeași prioritate rulează în ordinea în care au fost încărcate.
- pentru fiecare mâner, doar primul apel către
wp_enqueue_style()
este relevant (altele ignorate). - parametrul de dependență al
wp_enqueue_style()
afectează ordinea încărcării. - fără un număr de versiune, vizitatorii site-ului vor primi orice browser-ul lor a memorat în cache, în loc de noua versiune.,
- folosind o funcție pentru a obține versiunea temei va returna versiunea temei active (copil dacă există un copil).
- funcțiile numite
get_stylesheet
* căutați mai întâi o temă copil și apoi părintele.
recomandat de enqueuing foile de stil este de a adăuga un wp_enqueue_scripts
acțiune și de a folosi wp_enqueue_style()
în temă copil e functions.php
.
dacă nu aveți unul, creați un functions.php
în directorul temei copilului dvs., Prima linie a temei copilului dvs. functions.php
va fi o etichetă PHP de deschidere (<?php), după care puteți scrie codul PHP în funcție de ceea ce face tema părinte.dacă tema părinte încarcă ambele foi de stil, tema copil nu trebuie să facă nimic.
Dacă tema părinte sarcini stilul său folosind o funcție începând cu get_template
, cum ar fi get_template_directory()
și get_template_directory_uri()
, tema copilului are nevoie pentru a încărca doar copilul stiluri, folosind părinte mâner în dependență parametru.,
Dacă tema părinte sarcini stilul său folosind o funcție începând cu get_stylesheet
, cum ar fi get_stylesheet_directory()
și get_stylesheet_directory_uri()
, tema copilului are nevoie pentru a încărca ambele părinte și copil foi de stil. Asigurați-vă că utilizați același nume de mâner ca părintele pentru stilurile părinte.
extindeți codul sursă completcolapse codul sursă complet
Top
instalați tema copilului # 4. Instalați tema copilului
Instalați tema copilului pe măsură ce instalați orice altă temă., Aveți posibilitatea să copiați folderul de la site-ul folosind FTP, sau pentru a crea un fișier zip de tema copilului folder, alegeți opțiunea de a menține structura de foldere, și faceți clic pe Aspect > Teme > Add New pentru a încărca fișierul zip.
Top
Activați tema copilului # 5. Activați tema copilului
tema copilului dvs. este acum pregătită pentru activare. Conectați-vă la site-ului dvs. în Ecranul de Administrare, și du-te la Ecranul de Administrare > Aspectul > Teme., Ar trebui să vedeți tema copilului dvs. listată și pregătită pentru activare. WordPress este activată pe mai multe site-uri, atunci poate fi necesar să comutați la ecranul de administrare a rețelei pentru a activa tema (în fila ecran teme administrator rețea). Puteți apoi să reveniți la ecranul de administrare WordPress specific site-ului dvs. pentru a activa tema copilului.notă: poate fi necesar să salvați din nou meniul din aspect > meniuri și opțiuni tematice (inclusiv imagini de fundal și antet) după activarea temei copil.,
Sus
Adăugarea de Fișiere Șablon #Adăugarea de Fișiere Șablon
Alte decât functions.php
fișier (după cum sa menționat mai sus), orice fișier pe care îl adăugați la tema copilului va suprascrie același fișier în temă părinte.în cele mai multe cazuri, cel mai bine este să creați o copie a fișierelor șablon pe care doriți să le schimbați din tema părinte, apoi să faceți modificările la fișierele copiate, lăsând fișierele părinte neschimbate., De exemplu, dacă doriți să schimbați codul fișierului header.php
al temei părinte, ați copia fișierul în folderul temă copil și l-ați personaliza acolo.sfat: există mai multe plugin-uri care vă permit să detectați ce șablon specific este utilizat pe pagina la care căutați.
- ce fișier
- ce fișier șablon vizualizez?
- Debug Bar
De asemenea, puteți include fișiere în tema copil care nu sunt incluse în tema părinte., De exemplu, ați putea dori să creați un șablon mai specific decât se găsește în tema părinte, cum ar fi un șablon pentru o anumită pagină sau arhivă de categorii (de exemplu, Pagina-3.php s-ar încărca pentru o pagină cu ID-ul 3).
vezi pagina ierarhie șabloane pentru mai multe informații despre modul în care WordPress determină ce șablon să folosească.
Top
folosind funcții.php # folosind funcții.php
spre Deosebire de style.css
, functions.php
de o temă copil nu trece peste omologul său de la mamă. În schimb, este încărcat în plus față de funcțiile părintelui.,php. (Mai exact, este încărcat chiar înainte de fișierul părintelui.)
În acest fel, functions.php
a unei teme copil oferă o metodă inteligentă, fără probleme de modificare a funcționalității unei teme părinte. Spuneți că doriți să adăugați o funcție PHP la tema dvs. Cel mai rapid mod ar fi să deschideți fișierul functions.php
și să puneți funcția acolo. Dar asta nu este inteligent: data viitoare când tema dvs. este actualizată, funcția dvs. va dispărea., Dar există o modalitate alternativă, care este modul inteligent: puteți crea o temă copil, adăugați un fișier functions.php
și adăugați funcția la acel fișier. Funcția va face exact aceeași lucrare de acolo, cu avantajul că nu va fi afectată de actualizările viitoare ale temei părinte. Nu copiați întregul conținut al funcțiilor.php temei părinte în funcții.php în tema copilului.
structura functions.php
este simplă: o etichetă PHP de deschidere în partea de sus și sub ea, biți dvs. de PHP. În ea puteți pune cât mai multe sau cât mai puține funcții doriți., Exemplul de mai jos arată un elementar functions.php
fișier care face un lucru simplu: adaugă un link favicon la elementul cap de pagini HTML.sfat: faptul că funcțiile unei teme pentru copii.php este încărcat mai întâi înseamnă că puteți face funcțiile de utilizator ale temei dvs. conectabile— adică înlocuibile de o temă copil-declarându-le condiționat.
if ( ! function_exists( 'theme_special_nav' ) ) { function theme_special_nav() { // Do something. }}
În acest fel, o temă copil poate înlocui o funcție PHP a părintelui prin simpla declarare în prealabil.,
Pentru mai multe informații despre ce să includeți în fișierulfunctions.php
tema copilului dvs., citiți pagina funcții temă.
Top
referențierea sau includerea altor fișiere # referențierea sau includerea altor fișiere
când trebuie să includeți fișiere care se află în structura de directoare a temei copilului dvs., va trebui să utilizați get_stylesheet_directory(). Deoarece style.css
se află în rădăcina subdirectorului temei copilului dvs., get_stylesheet_directory() indică directorul temei copilului dvs. (nu Directorul temei părinte)., Pentru a face referire la directorul de teme părinte, veți folosi get_template_directory () în schimb.
mai Jos este un exemplu care ilustrează modul de utilizare get_stylesheet_directory() când referire la un fișier stocat în tema copilului director:
<?php require_once( get_stylesheet_directory(). '/my_included_file.php' ); ?>
între Timp, acest exemplu utilizează get_stylesheet_directory_uri()
pentru a afișa o imagine care este stocată în /images
folder în tema copilului director.,
<img src="https://developer.wordpress.org/themes/advanced-topics/child-themes/<?php echo get_stylesheet_directory_uri(); ?>/images/my_picture.png" alt="" />
Top
stiluri și scripturi #stiluri și scripturi
scripturile și stilurile ar trebui să fie fiecare cu propria funcție, iar apoi acestea ar trebui să fie înfășurate într-o acțiune. Pentru mai multe informații, citiți pagina inclusiv CSS și JavaScript.
WordPress nu va încărca automat foaia de stil pentru tema copilului tău în front-end. Mai jos este un exemplu de utilizare wp_enqueue_scripts()
acțiune cârlig pentru a apela o funcție care enqueues copilul temă de stil.,
Top
considerații speciale #considerații speciale
Top
formate Post #formate Post
o temă copil moștenește formate post așa cum sunt definite de tema părinte. Dar când creați teme pentru copii, rețineți că utilizarea add_theme_support('post-formats')
va suprascrie formatele definite de tema părinte, nu le va adăuga.,
Sus
Suport RTL #Suport RTL
Pentru suport pentru RTL limbi, se adaugă un rtl.css
fișierul pe tema copil, care conține:
/*Theme Name: Twenty Fifteen ChildTemplate: twentyfifteen*/
Chiar dacă tema părinte nu are un rtl.css
fișier, este recomandat pentru a adăuga rtl.css
fișierul pe tema copil. WordPress va încărca automat fișierul rtl.css
numai dacă is_rtl()
este adevărat.,
Top
internaționalizare #internaționalizare
temele pentru copii pot fi pregătite pentru a fi traduse în alte limbi folosind API-ul WordPress Internationalization. Există considerente speciale privind internaționalizarea temelor copilului.pentru a internaționaliza o temă copil urmați acești pași:
1. Adăugați un director de limbi.
- De exemplu:
twentyfifteen-child/languages/
2. Adăugați fișiere de limbă.,
- numele de fișiere trebuie să fie
he_IL.po
&he_IL.mo
(in functie de limba), spre deosebire de plugin fișiere care suntdomain-he_IL.xx
.
3. Încărcați o domeniu_text
- Utilizarea load_child_theme_textdomain() în
functions.php
în timpul after_setup_theme acțiune. - domeniul de text definit în load_child_theme_textdomain () trebuie folosit pentru a traduce toate șirurile din tema copilului.
4. Utilizați funcțiile GetText pentru a adăuga suport i18n pentru siruri de caractere.,
Example: textdomain # Example: textdomain
în acest moment, șirurile din tema copil sunt pregătite pentru traducere. Pentru a se asigura că sunt internaționalizate corespunzător pentru traducere, fiecare șir trebuie să aibă twentyfifteenchild
textdomain.
Sus
Exemplu: gettext funcții #Exemplu: gettext funcții
Aici este un exemplu de ecou sintagma „Codul este Poezie”:
<?phpesc_html_e( 'Code is Poetry', 'twentyfifteenchild' );?>
textul domeniu definit în load_child_theme_textdomain()
ar trebui să fie folosit pentru a traduce toate siruri de caractere în tema copilului., În cazul în care un fișier șablon de la părinte le-a fost inclus, textdomain ar trebui să fie schimbat de la cel definit în tema părinte la cel definit de tema copil.