Tutoriale WordPress de încredere, atunci când aveți cea mai mare nevoie.
Ghidul începătorului pentru WordPress
Cupa WPB
25 de milioane+
Site-uri web care folosesc plugin-urile noastre
16+
Ani de experiență WordPress
3000+
Tutoriale WordPress de la experți

Cea mai bună practică: Verifică dacă funcția există atunci când o adaugi în tema WordPress

Unul dintre cititorii noștri mai tehnici ne-a întrebat recent cum să verifice existența unei funcții PHP înainte de a integra cod nou într-un site WordPress. Acest lucru este important pentru a vă asigura că site-ul dvs. funcționează fără probleme și evită erorile.

Unul dintre punctele forte ale WordPress este flexibilitatea sa, iar echipa WPBeginner adaugă în mod regulat funcții personalizate pentru a îmbunătăți funcționalitatea site-ului nostru. Înțelegem că codul PHP personalizat poate eșua dacă apelează o funcție care nu mai există sau nu a fost încă definită.

În acest articol, vă vom arăta cum să verificați cu ușurință dacă o funcție există înainte de a o adăuga la tema dvs. WordPress, permițându-vă să evitați potențiale erori în codul dvs.

Verificarea dacă o funcție există în WordPress

De ce să adăugați „Dacă funcția există” la codul dvs. personalizat?

WordPress este scris în principal în limbajul de programare PHP. PHP este un limbaj de programare pe partea serverului care rulează pe serverele furnizorului dvs. de hosting WordPress.

Deoarece codul PHP trebuie să se termine de rulat înainte ca pagina să fie încărcată în browserele vizitatorilor dvs., există anumite limitări. Una dintre aceste limitări este că, dacă ceva nu merge bine, poate împiedica încărcarea întregii pagini.

În WordPress, dacă o funcție lipsă împiedică restul codului să ruleze, atunci acesta se oprește și afișează o eroare critică sau un mesaj de eroare fatală.

Mesaj de eroare critică WordPress

Ce poate face ca o funcție să înceteze brusc să funcționeze sau să dispară?

Este o eroare WordPress mai comună decât ați crede.

De exemplu, să spunem că unul dintre pluginurile dvs. WordPress vine cu o funcție pe care ați adăugat-o în zona antetului sau subsolului temei dvs. Dezactivarea pluginului va face ca funcția să dispară și va cauza eroarea critică pe site-ul dvs. WordPress.

Acestea fiind spuse, să vedem cum putem verifica cu ușurință dacă o funcție există înainte de a o executa în fișierele temei tale WordPress.

Verificarea dacă o funcție există în WordPress

Din fericire, limbajul de programare PHP vine cu o metodă încorporată pentru a verifica cu ușurință existența unei funcții înainte de a o executa.

Să spunem că aveți o funcție WordPress care afișează ora curentă cu informații despre fusul orar. Iată un fragment de cod pe care îl puteți folosi pentru a încerca.

O puteți adăuga direct în fișierul functions.php al temei dvs., dar în acest tutorial vom folosi pluginul de fragmente de cod WPCode, deoarece este cea mai sigură și mai ușoară modalitate de a adăuga cod personalizat în WordPress.

Mai întâi, trebuie să instalezi și să activezi Pluginul Gratuit WPCode. Dacă ai nevoie de ajutor pentru asta, atunci te rugăm să consulți ghidul nostru pas cu pas pentru începători despre cum să instalezi un plugin WordPress.

După activare, trebuie să accesați Fragmente de cod » + Adăugare fragment din tabloul de bord WordPress. Odată ajuns acolo, plasați cursorul mouse-ului peste opțiunea „Adăugați codul dvs. personalizat (Fragment nou)” și apoi faceți clic pe butonul „Utilizați fragmentul” care apare.

Adăugarea de cod personalizat în WPCode

Aceasta va deschide o nouă pagină unde puteți adăuga fragmentul dvs. personalizat. Introduceți un titlu, cum ar fi „Afișare oră curentă cu fus orar”, și apoi lipiți fragmentul de cod de mai jos în panoul de previzualizare a codului.

//display current time with timezone
function wpb_show_timezone() {
$better_time = current_time('F j, Y g:i a e');
echo "<p>The current time is " . $better_time ."</p>";
}
Lipiți fragmentul de cod în WPCode

După aceea, trebuie să selectați „PHP Snippet” din meniul derulant Tip cod pentru a vă asigura că codul rulează corect.

În cele din urmă, ar trebui să comutați glisorul Activate în poziția Pornit și să faceți clic pe butonul „Salvare fragment” pentru a stoca noul dvs. fragment de cod.

Activează și Salvează Fragmentul de Cod

Pentru a apela această funcție, va trebui să adăugați următorul cod oriunde în tema dvs. WordPress unde doriți să afișați ora curentă.

<?php wpb_show_timezone(); ?>

Așa arăta pe site-ul nostru de testare website.

Funcția rulează normal

Acum, ce s-ar întâmpla dacă codul responsabil pentru executarea acestei funcții ar dispărea?

Apelul funcției vă va strica site-ul în acest fel.

Eroare critică în WordPress

Să adăugăm o verificare pentru a ne asigura că acest cod rulează doar atunci când funcția există.

Din nou, va trebui să adăugați codul direct în fișierul functions.php al temei dvs. sau să utilizați un plugin de fragmente de cod, cum ar fi WPCode (recomandat):

<?php
if( function_exists('wpb_show_timezone')) {
wpb_show_timezone();
} else {
// do nothing
}
?>

În acest cod, folosim funcția function_exists(). Această funcție verifică dacă o funcție există și returnează Adevărat sau Fals.

Apoi am adăugat o condiție if-else pentru a lua măsuri adecvate în funcție de disponibilitatea funcției.

Acum, când funcția nu mai este disponibilă, codul o va omite pur și simplu, iar WordPress va putea încărca restul site-ului dvs. în mod normal.

Funcție lipsă omisă

Sperăm că acest articol v-a ajutat să învățați cum să verificați dacă o funcție există în WordPress. S-ar putea să doriți, de asemenea, să consultați ghidul nostru despre cum să afișați ușor cod pe site-ul dvs. WordPress sau selecția noastră de experți a celor mai bune editoare de cod pentru Mac și Windows pentru editarea fișierelor WordPress.

Dacă ți-a plăcut acest articol, te rugăm să te abonezi la canalul nostru de YouTube pentru tutoriale video WordPress. Ne poți găsi, de asemenea, pe Twitter și Facebook.

Dezvăluire: Conținutul nostru este susținut de cititori. Acest lucru înseamnă că dacă faceți clic pe unele dintre linkurile noastre, este posibil să câștigăm un comision. Vedeți cum este finanțat WPBeginner, de ce contează și cum ne puteți susține. Iată procesul nostru editorial.

Cel mai bun instrumentar WordPress

Obține acces GRATUIT la instrumentarul nostru - o colecție de produse și resurse legate de WordPress pe care fiecare profesionist ar trebui să le aibă!

Interacțiuni cu cititorii

7 CommentsLeave a Reply

  1. Mi-a salvat o bătaie de cap! Nu vă pot spune de câte ori am adăugat cod doar pentru ca tema mea să se blocheze, deoarece o funcție nu era acolo. Super ușor de implementat și menține codul meu curat.

    Mulțumesc pentru explicația clară

  2. Aș dori să întreb, dacă PHP îmi dă o eroare despre o funcție PHP inexistentă, poate fi activată o astfel de funcție sau trebuie să o facă administratorul serverului? Și este posibil ca funcția să depindă de versiunea PHP? Adică, o anumită funcție este disponibilă într-o versiune PHP, dar nu și în alta?

    • În acest caz, funcția nu există, deci va trebui să investigați ce funcție specifică este pentru a găsi ce cauzează eroarea. După aceea, puteți fie să verificați cu suportul ce cauzează eroarea, fie să eliminați ceea ce cauzează eroarea.

      Admin

  3. Bună idee Kovshenin. Știu exact ce vreți să spuneți, deoarece foloseam o funcție personalizată cu contact form 7 (pentru a prelua adresa IP la fiecare formular) și de fiecare dată când pluginul era actualizat, tema se strica.

    Mulțumesc pentru pont

    Joana Pereira

    • am pățit și eu la fel cu actualizări de pluginuri care au stricat teme! Folosirea funcției `function_exists()` este cu siguranță un element care schimbă jocul pentru a preveni aceste dureri de cap

  4. Right, only please stop checking for dynamic_sidebar with function_exists in WordPress themes, unless you need to support WordPress 2.2 and below, which I *highly* doubt. Also with the user photo plugin, the whole approach seems to be wrong and redundant to me, it looks like many developers are missing the whole point of pluggable functions…. Oh well :)

Lasă un răspuns

Vă mulțumim că ați ales să lăsați un comentariu. Vă rugăm să rețineți că toate comentariile sunt moderate conform politicii noastre de comentarii, iar adresa dvs. de e-mail NU va fi publicată. Vă rugăm să NU folosiți cuvinte cheie în câmpul nume. Să avem o conversație personală și semnificativă.