Home » Articole » Articole » Calculatoare » Dezvoltarea web » WordPress » Șabloane personalizate pentru teme WordPress

Șabloane personalizate pentru teme WordPress

postat în: WordPress 0

Wordpress-Teme-Personalizare

Șabloane de pagini personalizate

Fișierele care definesc fiecare șablon de pagină se găsesc în directorul de teme. Pentru a crea un nou șablon de pagină personalizată trebuie să creezi un fișier. Să numim primul noastră șablon de pagină personal.php. În partea de sus a fișierului personal.php, pune următorul cod:

<?php
/*
Template Name: Personal
*/
?>

Codul de mai sus defineste acest fișier personal.php ca șablonul „Personal”. Firește, „Personal” poate fi înlocuit cu aproape orice text pentru a schimba numele șablonului de pagină. Acest nume de șablon va apărea în Editor teme ca linkul pentru a edita acest fișier.

Fișierul poate fi numit aproape orice cu extensia .php.

Ceea ce urmează după cele cinci linii de cod de mai sus depinde de tine. Restul de cod pe care îl vei scrie va controla modul în care se vor afișa paginile care utilizează șablonul de pagină Personal. Poți considera mai convenabil să copiezi un alt șablon (probabil page.php sau index.php) în personal.php și apoi adaugi cele cinci linii de cod de mai sus la începutul fișierului. În acest fel, vei avea doar de modificat codurile HTML și PHP, în loc să creezi totul de la zero. Exemplele sunt prezentate mai jos. După ce ai creat un șablon de pagină și l-ai pus în directorul temei, acesta va fi disponibil ca opțiune atunci când creați sau editați o pagină. (Notă: când creați sau modificați o pagină, opțiunea șablonului de pagină nu apare decât dacă există cel puțin un șablon definit în modul de mai sus.)

Fișierele șablon pe bază de interogare

WordPress poate încărca diferite șabloane pentru diferite tipuri de interogare. Există două moduri de a face acest lucru: ca parte ierarhiei implicite de șabloane, sau prin utilizarea de etichete condiționale în cadrul buclei unui fișier șablon.

Pentru a utiliza ierarhia de șabloane, aveți nevoie practic să oferiți fișiere de șabloane cu destinație specială, care vor fi utilizate în mod automat pentru a suprascrie index.php. De exemplu, în cazul în care tema oferă un model numit category.php și o categorie este interogată, category.php va fi încărcat în loc de index.php. Dacă fișierul category.php nu este prezent, index.php este folosit ca de obicei.

Puteți fi chiar și mai specific în ierarhia de șabloane prin furnizarea unui fișier numit, de exemplu, categoria-6.php – acest fișier va fi utilizat în locul lui category.php la generarea paginii pentru categoria al cărui număr de identificare este 6. (Puteți localiza ID-ul categoriei făcând clic pe „Editează” din dreptul categoriei în secțiunea Articole > Categorii și notând valoarea ID= din bara de adresă URL. Adrea URL va fi ceva în genul „… wp-admin/edit-tags.php?action=edit&taxonomy=category&tag_ID=6&post_type=post unde ‘6‘ este valoarea ID a categoriei).

În cazul în care tema trebuie să aibă mai mult control asupra fișierelor șablon care sunt utilizate decât ceea ce este permis în ierarhia de șabloane, puteți utiliza etichete condiționale. Eticheta condiționat verifică în principal dacă unele condiții special sunt adevărate, în bucla WordPress, apoi se poate încărca un anumit șablon, sau pune un text special pe ecran, bazat pe acea condiție.

De exemplu, pentru a genera o foaie de stil distinctivă doar într-un post din cadrul unei anumite categorii, codul ar putea arăta astfel:

[php] <?php
if ( is_category( ‘9’ ) ) {
get_template_part( ‘single2’ ); // caută postări din categoria cu ID-ul ‘9’
} else {
get_template_part( ‘single1’ ); // pune aceasta pe orice altă postare din categorie
}
?>
[/php]

Sau, folosind o interogare, s-ar putea arata astfel:

[php] <?php
$post = $wp_query->post;
if ( in_category( ‘9’ ) ) {
get_template_part( ‘single2’ );
} else {
get_template_part( ‘single1’ );
}
?>
[/php]

În ambele cazuri, acest cod exemplu va provoca diferite modele pentru a fi utilizate în funcție de categoria de postare specială afișată. Condițiile de interogare nu sunt limitate la categorii.

Definirea șabloanelor personalizate

Este posibil să se utilizeze sistemul de module WordPress pentru a defini șabloane suplimentare care sunt afișate în funcție de propriile criterii personalizate. Această caracteristică avansată poate fi realizată cu ajutorul cârligului de acțiune (action hook) „template_redirect„.

Includerea fișierelor șablon

Pentru a încărca un alt șablon (altele decât antetul, bara laterală, subsolul, care au comenzi incluse predefinite ca get_header()) într-un șablon, puteți folosi get_template_part(). Acest lucru face mai ușor pentru o temă să se reutilizeze secțiunile de cod.

Fișiere de referință dintr-un șablon

Când se face referire la alte fișiere din aceeași temă, evitați URI-urile și căi de fișiere greu codificate.

Rețineți că URI-urile care sunt folosite în foaia de stil sunt relative la foaia de stil, nu la pagina la care face referire la foaia de stil. De exemplu, dacă includeți un director images/ în temă, trebuie să specificați acest director doar relativ la CSS, astfel:

[php] h1 {
background-image: url(images/my-background.jpg);
}
[/php]

Cârlige API pentru module

La elaborarea temelor, e bine să ținem cont de faptul că tema ar trebui să fie stabilită astfel încât să se poate lucra bine cu orice modul WordPress pe care utilizatorii ar putea decide să îl instaleze. Modulele adaugă funcționalitate WordPress prin „cârlige de acțiune”.

Cele mai multe cârlige de acțiune sunt în codul PHP de bază al WordPress, astfel încât tema ta nu trebuie să aibă nicio etichetă specială pentru ele. Dar câteva cârlige de acțiune trebuie să fie prezente în temă, pentru ca modulele să afișeze informații direct în antet, subsol, bara laterală, sau în corpul paginii. Iată o listă de etichete de șablon pentru cârlige de acțiune pe care trebuie să le incluzi:

  • wp_enqueue_scripts – Folosit în fișierul funcțiilor temei. Folosit pentru a încărca scripturi externe și de stil.
  • wp_head() – Merge în elementul <head> al unei teme, în header.php. Exemplu de utilizare pentru module: adaugă codul JavaScript.
  • wp_footer() – Merge în footer.php, chiar înainte de eticheta de închidere </ body>. Exemplu de utilizare pentru module: introduce cod PHP de care are nevoie pentru a rula după orice altceva, în partea de jos a subsolui. Foarte frecvent folosit pentru a insera cod de statistici web, cum ar fi Google Analytics.
  • wp_meta() – De obicei merge în secțiunea <li>Meta</ ​​li> din meniul unei teme sau bara laterală; șablon sidebar.php. Exemplu de utilizare pentru module: include o reclamă prin rotație sau un nor de etichete.
  • comment_form() – Merge în comments.php direct în fața etichetei de închidere a fișierului (</div>). Exemplu de utilizare pentru module: afișează o previzualizare a unui comentariu.

În situațiile reale, vei găsi aceste cârlige pentru module incluse în șabloanele implicite ale temei.

API pentru personalizarea temei

Începând cu WordPress 3.4, o caracteristică nouă de personalizare a temei este disponibilă în mod implicit pentru aproape toate temele WordPress. Pagina de administrare a personalizării temei este populată automat cu opțiuni pe care o temă le declară că le suportă cu add_theme_support() sau folosind API Settings, și permite administratorilor previzualizări non-permanente ale schimbărilor pe care le fac în timp real.

Tema și modulul la care dezvoltatorii sunt interesați să adauge de noi opțiuni la o pagină de personalizare a temei ar trebui să fie conforme documentației API oentru Personalizarea Temei.

Date care nu sunt de încredere

Ar trebui să fugi de conținut generat dinamic în temă, mai ales conținut care este include la ieșire atribute HTML. Textul care intră în atribute ar trebui să fie executat prin esc_attr(), astfel încât ghilimele simple sau duble să nu termine valoarea atributului și să invalideze XHTML și să cauzeze o problemă de securitate. Situații comune pentru verificare sunt atributele title, alt, și value.

Există câteva etichete speciale șablon pentru cazurile comune atunci când este nevoie de ieșire în condiții de siguranță. Un astfel de caz implică ieșirea pentru un titlu de postare la un atribut title folosind the_title_attribute() în loc de the_title() pentru a evita o vulnerabilitate de securitate. Iată un exemplu de escape corect pentru atributul title al unei legături de titlu atunci când se utilizează textul translatabil:

[php] <a href="<?php the_permalink(); ?>" title="<?php
sprintf( __( ‘Link permanent la %s’, ‘theme-name’ ),
the_title_attribute( ‘echo=0’ ) ); ?>"><?php
the_title(); ?></a>
[/php]

Înlocuiți solicitările depreciate escape cu apelurile corecte: wp_specialchars() și htmlspecialchars() cu esc_html(), clean_url() cu esc_url(), și attribute_escape() cu esc_attr().

Suport traducere/I18n

Pentru a asigura o tranziție lină de localizare a limbii, utilizați funcțiile i18n WordPress pe bază de gettext pentru a include tot textul traductibil în fișierele șablon. Acest lucru face mai ușor introducerea fișierelor de traducere și traducerea etichetelor, a titlurilor și altor texte șablon în limba curentă a site-ului.

Clase de teme

Implementează următoarele etichete șablon pentru a adăuga atribute de clase generate de WordPress la elementele body, post, și comment. Pentru clasele de postare, se aplică numai la elemente din cadrul buclei.

  • body_class()
  • post_class()
  • comment_class()

Traducere din wordpress.org

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *