Cum să adăugați logica condiționată la tema dvs. WordPress

Publicat: 2021-02-25

Construirea unui site web cu WordPress oferă o mare flexibilitate cu ceea ce puteți face atât în ​​ceea ce privește designul, cât și funcționalitatea. Și, pe măsură ce vă aprofundați în dezvoltarea temei, veți descoperi că există momente când trebuie să vizați o anumită pagină, categorie sau tip de postare pentru ceva special. Acolo logica condiționată vă poate face munca mult mai ușoară.

Logica condiționată este o caracteristică puternică a limbajelor de programare (PHP, în cazul nostru). În esență, putem folosi codul pentru a verifica dacă există o anumită condiție și apoi facem ceva specific dacă acea condiție este îndeplinită. Un exemplu simplu în acest sens ar fi verificarea pentru a vedea dacă un utilizator se află în prezent pe pagina principală a site-ului nostru. Folosind logica condiționată, am putea alege să încărcăm un glisor sau alt conținut special în această situație.

În ceea ce privește WordPress, există o serie de etichete condiționate utile încorporate în software care ne permit să testăm tot felul de scenarii. Sunt bine documentate și vă permit să aduceți un nivel mai înalt de funcționalitate site-ului dvs.

Astăzi, vom arunca o privire la câteva dintre etichetele condiționale mai frecvent utilizate și la modul în care le puteți implementa în propriul site.

O notă despre utilizarea etichetelor condiționate

Etichetele condiționate sunt fragmente de cod PHP și ar trebui să intre în tema activă a site-ului dvs. Există un număr de locuri în care puteți folosi logica condiționată într-o temă.

Dacă nu ați făcut deja acest lucru, este o idee bună să vă familiarizați cu Ierarhia șabloanelor WordPress pentru o explicație a modului în care funcționează fișierele cu teme.

Și, înainte de a încerca să implementați cod nou pe un site live, cel mai bine este să configurați un mediu de dezvoltare (staging) pentru a testa mai întâi lucrurile. Amintiți-vă că o mișcare falsă cu PHP poate da site-ului dvs. temutul „Ecran alb al morții”. Așa că aveți mare grijă la testare înainte de a lucra pe un site live.

este acasa()

Acesta provoacă o mare confuzie în rândul dezvoltatorilor. Privind eticheta, ați presupune că is_home() va fi folosit pentru a verifica pagina de pornire a site-ului dvs. Nu este cazul.

De fapt, caută pagina atribuită ca pagină Postări, care este setată în Setări > Citire în tabloul de bord WordPress. În mod implicit, WordPress vă folosește pagina de pornire pentru a lista postări – dar majoritatea site-urilor tind să folosească o pagină de pornire statică.

Deci, de exemplu, dacă ați alocat o pagină numită „Blog” ca pagină de postări, asta va căuta is_home() .

 <?php // If this the Posts page, display a message. if ( is_home() ): echo '<h2>Thanks for visiting our blog!</h2>'; endif; ?>

is_front_page()

În schimb, is_front_page() caută orice pagină este setată ca acasă a site-ului dvs. – indiferent dacă este statică sau nu. Desigur, acesta nu este cel mai evident lucru din lume atunci când înveți să-ți creezi propriile teme. Dar este vital să știi ce etichetă să folosești.

Ceea ce este plăcut la această etichetă specială este că, chiar dacă mai târziu ai atribui o altă pagină ca pagină de pornire, vei viza în continuare locul potrivit. Există modalități mai explicite de a viza paginile, dar aceasta vă ține acoperit în cazul unei modificări.

 <?php // If this is the home page, show a special message. if ( is_front_page() ) { ?> <h1>Welcome</h1> <?php // Otherwise, show the page title. } else { ?> <?php the_title( '<h1 class="entry-title">', '</h1>' ); ?> <?php } ?>

is_single() și is_page()

Fiecare dintre aceste etichete îndeplinește o funcție dublă. is_single() caută să vadă dacă adresa URL curentă este o postare. Ar putea fi o postare de blog standard, un atașament sau să aparțină unui tip de postare personalizat.

În mod similar, is_page() va returna true dacă adresa URL curentă este o pagină. În mod implicit, ambele etichete vizează orice conținut care se încadrează sub umbrela unei pagini sau postări. Acesta este un fir comun între multe etichete condiționate.

 <?php // Target all posts. if ( is_single() ): echo 'You are on a single post.'; endif; // Target all pages. if ( is_page() ): echo 'This is a page'; endif; ?>

Dar puteți, de asemenea, să utilizați aceste etichete pentru a viza o anumită postare sau pagină, adăugând un ID sau un slug.

 <?php // Target About Us if ( is_page( 'about-us' ) ): ?> <a href="#"></a> <?php endif; ?>

Utilizarea unei matrice vă va permite să vizați mai multe părți de conținut.

 <?php // Target About Us and Contact Us pages. if ( is_page( array('about-us', 'contact-us') ) ): ?> <a href="#"></a> <?php endif; ?>

is_tax() și are_term()

Taxonomiile joacă un rol important în modul în care este organizat conținutul pe un site. Două dintre cele mai comune sunt categoriile și etichetele – care au propriile lor etichete condiționate. Dar WordPress ne permite, de asemenea, să ne creăm propriile taxonomii.

De exemplu, dacă site-ul dvs. conține recenzii muzicale, este posibil să aveți o taxonomie numită „Gen”. De acolo, ați fi putut enumera genuri specifice de muzică în cadrul acelei taxonomii, cum ar fi „Rock”, „Hip-Hop” și „Jazz”.

is_tax() vizează o pagină de arhivă de taxonomie. Rămânând cu exemplul nostru de recenzie muzicală, această etichetă se va declanșa (intră în vigoare) atunci când ne aflăm pe pagina de arhivă pentru fiecare dintre genurile specifice.

 <?php // Display a message on our Genre archive pages. if (is_tax('genre','rock','hip-hop','jazz') ): echo '<h2>This is a genre archive. Enjoy!</h2>'; endif; ?>

has_term() este folosit pentru a viza postarea curentă în funcție de taxonomia căreia îi aparține. Acest lucru este util dacă, de exemplu, dorim să adăugăm o grafică specială pentru postările din fiecare gen de muzică de pe site-ul nostru.

 <?php // Show an image for the Rock genre. if (has_term('rock','genre') ): ?> <?php endif; ?>

is_page_template()

Odată ce vă familiarizați cu ierarhia șabloanelor unei teme, poate doriți să vă creați propriile șabloane personalizate de pagină. is_page_template() vă permite să vizați șablonul de pagină curent utilizat (indiferent dacă este sau nu personalizat). Puteți fie să verificați dacă este folosit vreun șablon de pagină, fie să căutați unul anume.

Totuși, trebuie să fii atent când cauți un anumit șablon de pagină. Deoarece această etichetă verifică existența unui nume de fișier, condiționalul ar putea înceta să funcționeze dacă numele șablonului ar fi schimbat. Va trebui să vă actualizați codul pentru a reflecta orice modificări ale numelui fișierului.

 <?php // Add a search form to the Services page template. if (is_page_template('services.php') ): ?> <?php get_search_form(); ?> <?php endif; ?>

Toate condițiile îndeplinite

Deși aceasta a fost doar o scurtă introducere a modului în care poate fi folosită logica condiționată, sperăm că vă trezește apetitul pentru a afla mai multe.

Odată ce stăpâniți condițiile, veți putea să vă personalizați site-ul în moduri care altfel ar fi aproape imposibile.

Ele vă pot oferi un control fin asupra aspectului și aspectului temei dvs., beneficiind în același timp de toate avantajele utilizării unui CMS.