Home » Articole » Știri » Lucrul cu teme copil în WordPress

Lucrul cu teme copil în WordPress

postat în: Știri 0

sitweb-teme

Fișierele șablon

Dacă doriți să modificați mai mult decât foaia de stil, tema copil poate suprascrie orice fișier în tema părinte: pur și simplu includeți un fișier cu același nume în directorul temă copil, și acesta va suprascrie fișierul echivalent din directorul temă părinte, atunci când se încarcă site-ul. De exemplu, dacă doriți să schimbați codul PHP pentru antetul site-ului, aveți posibilitatea să includeți un header.php în directorul temei copil, și acest fișier va fi folosit în loc de header.php al temei părinte.

Puteți include, de asemenea, fișiere în tema copilul care nu sunt incluse în tema părinte. De exemplu, ați putea dori să creați un șablon mai specific decât se gaseste în tema părinte, cum ar fi un șablon pentru o pagină sau arhivă de categorie specifică.

Utilizarea functions.php

Spre deosebire de style.css, functions.php a unei teme copil nu suprascrie omologul său de la tema părinte. În schimb, aceasta este încărcată suplimentar față de functions.php a temei părinte. (Mai exact, este încărcată înainte de fișierul părinte.)

Î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. Să spunem că doriți să adăugați o funcție PHP la temă. Cel mai rapid mod este de a deschide fișierul functions.php și a pune funcția acolo. Dar asta nu e o modalitate inteligentă: data viitoare când tema este actualizată, funcția va dispărea. Dar există o modalitate alternativă care este mai inteligentă: puteți crea o temă copil, adăugați un fișier functions.php în ea, și adăugați funcția în acest fișier. Funcția va face exact același lucru de acolo, cu avantajul că nu va fi afectată de actualizările viitoare ale temei părinte. Nu copiați conținutul integral al functions.php al temei părinte în functions.php din tema copil.

Structura functions.php este simplă: O etichetă de deschidere PHP în partea de sus, și sub ea codul tău PHP. În ea puteți pune funcții cât de multe sau de puține doriți. Exemplul de mai jos arată un fișier functions.php elementar care face un lucru simplu: adaugă o legătură favicon la elementul head al paginii HTML.

<?php // Eticheta de deschidere PHP – nimic ar trebui să fie înainte de aceasta, nici măcar spațiu

// Personalizate funcție pentru a include
function favicon_link() {
echo ‘<link rel=”shortcut icon” type=”image/x-icon” href=”/favicon.ico” />’ . “n”;
}
add_action( ‘wp_head’, ‘favicon_link’ );

SFAT PENTRU DEZVOLTATORII DE TEME. Faptul că o functions.php a temei copil este încărcată prima înseamnă că puteți face funcțiile de utilizare ale temei modulare – respectiv, înlocuibile de o temă copil – prin declararea condițională a lor. De exemplu:

if ( ! function_exists( ‘theme_special_nav’ ) ) {
function theme_special_nav() {
//  Fă ceva.
}
}

În acest fel, o temă copil poate înlocui o funcție PHP a temei părinte prin simpla declarare în prealabil.

Referirea/Includerea fișierelor în tema copil

Când aveți nevoie să includeți fișiere în structura de director a temei copil, veți folosi get_stylesheet_directory(). Deoarece șablonul părinte style.css se înlocuiește cu style.css al temei copil, și acesta se află în rădăcina subdirector a temei copil, get_stylesheet_directory() arată spre directorul temei copil (nu directorul temei părinte).

Iată un exemplu, folosind require_once, care arată modul în care puteți utiliza get_stylesheet_directory atunci când faceți referire la un fișier stocat în structura directorului temei copil.

require_once( get_stylesheet_directory() . ‘/my_included_file.php’ );

Alte informații utile

Folosirea formatelor de postare

O temă copil moștenește formatele de postare așa cum sunt definite de tema părinte. La crearea temei copil, să fiți conștient de faptul că utilizarea add_theme_support(‘post-formats’) va suprascrie formatele definite de tema părinte, nu-l adăugați.

Suport RTL

Pentru a suporta limbile RTL, adăugați fișierul rtl.css la tema copil, care conține:

/*
Theme Name: Twenty Fourteen Child
Template: twentyfourteen
*/

rtl.css este încărcat de WordPress numai dacă is_rtl() returnează true.

Este recomandat să adăugați fișierul rtl.css la tema copil, chiar dacă tema părinte nu are niciun fișier rtl.css.

Internaționalizare

Temele copi, la fel ca alte extensii, pot fi traduse în alte limbi, cu ajutorul funcțiilor gettext.

Pentru a internaționaliza o temă copil urmați acești pași:

  • Adăugați un director de limbi.
    • Ceva de genul meu, my-theme/languages/.
  • Adăugați fișierele de limbă.
    • Nume de fișiere trebuie să fie ro_RO.po și ro_RO.mo (în funcție de limbă).
  • Încărcați un textdomain.
    • Utilizați load_child_theme_textdomain() în functions.php în timpul acțiunii after_setup_theme.
    • Domeniul de text definit în load_child_theme_textdomain() ar trebui să fie folosit pentru a traduce toate șirurile de caractere în tema copil.
  • Utilizarea funcțiile GetText pentru a adăuga suport i18n la șirurile de caractere.

Exemplu: textdomain

<?php
/**
* Setare textdomain la tema copil.
*
* Declarare textdomain for această temă copil.
* Traduceri pot fi plasate în /languages/ directory.
*/
function my_child_theme_setup() {
load_child_theme_textdomain( ‘my-child-theme’, get_stylesheet_directory() . ‘/languages’ );
}
add_action( ‘after_setup_theme’, ‘my_child_theme_setup’ );
?>

Exemplu: funcții gettext

<?php
_e( ‘Codul e poezie’, ‘my-child-theme’ );
?>

Pentru a rezuma, toate sirurile de caractere care utilizează textdomain  “my-child-theme” vor fi traductibile. Fișierele de traducere trebuie să se afle în “/languages/” directory“.

Unele resurse recomandă să utilizați @import din foaia de stil a temei copil ca metodă de a importa foaia de stil a temei părinte. Recomandabil este să folosiți metoda wp_enqueue_script() descrisă mai sus.

Traducere din wordpress.org

Lasă un răspuns

Adresa ta de email nu va fi publicată.