Un ghid pentru utilizarea pluginurilor cu funcții personalizate în WordPress

Publicat: 2024-03-07

Peste un deceniu ca dezvoltator backend WordPress, am folosit diverse metode pentru a adapta WordPress la nevoile mele și ale altora. Cel mai obișnuit este scrierea de pluginuri cu funcții personalizate WordPress. După cum veți vedea mai jos, aceasta nu este singura opțiune și nu întotdeauna cea potrivită.

În timp ce dedic această postare dezvoltatorilor, managerii de proiect vor afla, de asemenea, cum aceste metode se potrivesc nevoilor echipei lor și când și cum să le folosească.

Acestea sunt metodele pe care le folosesc pentru a personaliza WordPress:

  • Adăugați codul în functions.php ale temei
  • Scrieți un plugin pentru funcții personalizate WordPress
  • Utilizați un plugin pentru a gestiona fragmente de cod personalizate
  • Bonus: Trebuie să utilizați pluginuri

Să aruncăm o privire mai profundă la fiecare dintre aceste metode.

Adăugați cod în funcțiile.php

Pe vremurile „vechi”, când WordPress folosea în principal PHP pe front-end și backend, cel mai rapid mod de a face unele modificări site-ului tău era adăugarea codului în funcțiile.php ale temei.

Poți face în continuare acest lucru și, dacă îndrăznești, folosește Editorul de fișiere tematice din tabloul de bord WordPress pentru asta.

Cod personalizat adăugat în fișierul functions.php prin Editorul de fișiere temă din tabloul de bord WordPress.
Cod personalizat în fișierul functions.php al temei prin Editorul de fișiere teme.

De-a lungul timpului, acesta a trecut de la modul meu preferat de personalizare a WordPress la cel mai puțin preferat.

Motivul principal este că functions.php este atașat unei teme. Dacă aceasta nu este o temă personalizată și cineva o actualizează, ajustările mele au dispărut.

Soluția este să creați o temă copil care să conțină modificările dvs. legate de tema părinte.

Motivul meu principal pentru a nu mai adăuga atât de mult cod personalizat în fișierul functions.php este că, în realitate, cea mai mare parte a acestui cod era teritoriu plugin, adăugând funcționalitate site-ului în general și nu numai temei.

Există încă două situații în care scriu cod personalizat în functions.php :

  1. Codul se referă la tema personalizată sau copil.
  2. Testarea modificărilor rapide înainte de a le muta în alt loc, deoarece functions.php este adesea ușor de accesat pentru aceasta.

De asemenea, rețineți că functions.php nu este locul unde să găzduiască multe modificări, deoarece un singur fișier poate deveni excesiv de complex. Mai ales când am nevoie de mai multe fișiere PHP și alte tipuri de fișiere în modificările mele, optez să scriu un plugin pentru funcții personalizate WordPress.

Scrierea pluginurilor cu funcții personalizate

După cum am menționat mai devreme, cea mai mare parte a codului pe care îl adaug pe site-ul meu este de fapt construirea sau extinderea funcționalităților care sunt independente de temă.

Odată ce știu că voi adăuga mai multe personalizări la un site, pornesc un plugin cu funcții personalizate. De obicei poartă numele site-ului, așa cum aș numi unul pentru WP Mayor, pluginul „WP Mayor Custom Functions”.

Numirea este crucială! În primul rând, permite altor administratori să vadă că acest plugin are legătură cu site-ul și, probabil, găzduiește doar modificări pentru acesta.

În al doilea rând, păstrarea folderului pluginului și a numelui fișierului unic va împiedica site-ul dvs. WordPress să îl suprascrie accidental cu un plugin care are același slug în depozitul de pluginuri wordpress.org.

Crearea unui plugin cu funcții personalizate WordPress este ușoară. Tot ce aveți nevoie este un fișier PHP în wp-content/plugins . Cu toate acestea, ar trebui să creați mai întâi un folder nou, deoarece adesea aveți nevoie de mai multe fișiere pentru a vă structura codul și este posibil să doriți să adăugați fișiere pentru codul JavaScript și CSS.

Urmând exemplul nostru, să presupunem că acum avem folderul plugin wp-content/plugins/wp-mayor-custom-functions/wp-mayor-custom-functions.php și fișierul principal.

Să adăugăm un antet la fișier pentru a spune WordPress despre ce este vorba despre pluginul nostru. În timp ce „Numele pluginului” este suficient pentru ca acesta să funcționeze din punct de vedere tehnic, să aruncăm o privire la un exemplu mai avansat:

 /** * Plugin Name: WP Mayor Custom Function * Plugin URI: https://wpmayor.com * Description: All the cool features we custom-built for us. * Version: 1.0.0 * Requires at least: 6.2 * Requires PHP: 8.1 * Author: Thomas Maier */

Acest lucru ar trebui să apară deja sub „Plugin-uri” în tabloul de bord WordPress.

Un plugin cu funcție personalizată WordPress activat în meniul Plugins.
Pluginul nostru cu funcții personalizate în secțiunea Pluginuri.

Acum, putem dezvălui și adăuga cod PHP real în fișierul nostru.

Sfat: când nu am acces FTP la un site sau sunt doar leneș, folosesc pluginul Pluginception pentru a învârti rapid ceva pe care îl pot completa ulterior cu cod prin Editorul de fișiere de plugin din tabloul de bord WordPress.

Ar trebui să puneți acum tot codul pentru un anumit site într-un singur plugin dedicat funcției personalizate?

Depinde. Când știu că codul personalizat este folosit în mai multe proiecte, îl separ într-un plugin diferit. În același timp, adun cod care este dedicat unui anumit site într-un singur plugin. Cu cât mai puține plugin-uri, cu atât mai puține depozite de coduri trebuie să întrețin.

Sună grozav până acum? Ei bine, în timp ce gestionam o companie de pluginuri mai mare în ultimii ani și făceam peste o sută de ajustări site-ului, am observat că aceste plugin-uri personalizate sunt încă foarte concentrate pe dezvoltatori. Deci, să ne uităm la o altă abordare în secțiunea următoare.

Utilizarea unui plugin cu funcție personalizată pentru fragmente de cod

În cea mai mare parte a timpului meu în afaceri mari cu pluginuri, am fost responsabil pentru partea tehnică a magazinului nostru de pluginuri.

Am pus orice cod care nu era specific temei într-un singur plugin cu funcție personalizată. Toate ajustările aduse pluginurilor și personalizărilor individuale, cum ar fi redirecționarea cardurilor goale către pagina de prețuri, propuneri de upsell sau oferte de Vinerea Neagră, au fost documentate și răspândite pe diferite fișiere cu nume care pot fi citite.

Ei bine, „documentat” și „lizibil” pentru oricine are acces la cod.

Chiar dacă am fost mereu în preajmă pentru a face ajustări sau a răspunde la întrebări despre ele, am simțit că aceasta nu este o modalitate eficientă și durabilă de a gestiona majoritatea funcțiilor personalizate.

Cu tot mai mulți oameni implicați în gestionarea magazinului și a site-ului web, am vrut să le ofer șansa de a cunoaște ajustările, fără a fi nevoie să țin o pagină dedicată din baza noastră de cunoștințe la zi.

Soluția a fost instalarea unui plugin cu funcție personalizată WordPress care gestionează toate sau majoritatea fragmentelor de cod din tabloul de bord WordPress.

Preferatul meu personal este pluginul gratuit Code Snippets, dar mai sunt și alții în jur.

Cu Fragmente de cod, există un element de meniu dedicat în tabloul de bord cu toate fragmentele.

Acum, oricine are acces de administrator poate vedea ajustările. Folosesc nume descriptive pentru fiecare fragment, folosesc câmpul de note pentru a-l descrie în profunzime și atribui etichete modificărilor de grup.

Lista fragmentelor de cod din pluginul Fragmente de cod.
O listă de fragmente de cod personalizate.

Etichetele mele sunt, de obicei, numele pluginului sau temei care este ajustată și secțiunea paginii vizată, cum ar fi „WooCommerce” și „Checkout”.

Exemplu de fragmente de cod personalizate pe pagina pluginului Fragmente de cod.
Acest exemplu arată un cod personalizat care afișează data ultimei actualizări sub postări.

Dacă alegeți nume bune și o structură bună, oricine ar trebui să poată găsi și înțelege ajustări. Inclusiv eu. Folosesc această metodă chiar și pe site-urile mele personale, deoarece oferă atât de mult confort.

Folosirea unui plugin cu funcții personalizate este utilă în special pentru fragmentele de cod de care aveți nevoie doar temporar, cum ar fi un cod de curățare care trebuie să ruleze doar o dată din când în când sau pentru o acțiune frontală, cum ar fi activarea unei promovări.

Este sigur?

În mod implicit, WordPress permite oricui cu rolul „admin” să editeze fișierele plugin și teme în backend. Utilizarea unui plugin de cod personalizat nu este diferită de aceasta. Deci, vechea regulă de a fi defensiv și de a oferi tuturor doar rolul necesar se aplică în continuare.

Dezvoltatorii ar putea dori să știe că unele cârlige foarte timpurii ale unei cereri de pagină nu sunt disponibile atunci când gestionează codul printr-un plugin, deoarece pluginul în sine trebuie să se încarce mai întâi. Dacă aveți nevoie de încărcarea codului personalizat înaintea oricărui alt plugin, consultați opțiunea Trebuie să utilizați pluginuri de mai jos.

Funcții WordPress personalizate în pluginurile Must Use

Așa-numitele pluginuri „Must Use” sunt o rasă specială printre pluginuri.

Deoarece se execută înaintea oricărui alt plugin „normal”, le folosesc pentru a activa sau dezactiva anumite pluginuri pentru o anumită pagină. Puteți utiliza un astfel de cod pentru a accelera pseudo-API-urile sau apelurile la admin-ajax.php .

O altă caracteristică a pluginurilor Must Use este că acestea sunt activate implicit și nimeni nu le poate dezactiva sau modifica prin tabloul de bord WordPress. Acest lucru le face ideale pentru codul esențial pe care nici măcar utilizatorii admin nu ar trebui să-l poată accesa.

Crearea unui mu-plugin

Pluginurile Must Use sunt găzduite în folderul wp-content/mu-plugins . Acest folder nu există într-o nouă instalare WordPress. Totuși, unele plugin-uri sau companii de găzduire ar putea adăuga conținut aici în mod dinamic.

Pentru a adăuga un nou plugin în folderul mu-plugin, trebuie să creați un fișier PHP pe computer cu antetul fișierului plugin pe care v-am arătat mai sus pentru pluginul nostru personalizat. De data aceasta, nu este important să alegeți un nume unic, deoarece pluginurile Must Use nu sunt actualizate automat.

Odată ce sunteți mulțumit de noul plugin cu funcții personalizate, încărcați-l manual prin FTP în folderul wp-content/mu-plugins . Creați folderul mu-plugins dacă nu există.

Deși nu puteți modifica pluginurile Must Use prin panoul de administrare WordPress, le puteți vedea listate sub Plugins > Must-Use.

Un plugin pentru funcții personalizate WordPress trebuie să utilizați, listat sub Pluginuri în administratorul WordPress.
Pluginurile Must Use au propria filă dedicată în secțiunea Pluginuri.

În mod ideal, pluginurile Must Use sunt pluginuri cu un singur fișier. WordPress nu le poate găsi în subfoldere, deși puteți face referire la fișiere suplimentare în fișierul PHP principal. Dar dacă creați un plugin Must Use complex, gândiți-vă la mutarea codului principal într-un plugin obișnuit și utilizați pluginul MU numai pentru a încărca ceea ce este necesar pentru a rula înaintea tuturor celorlalte plugin-uri.

Concluzie

Am explorat diferitele metode de adăugare a codului personalizat la WordPress, de la adăugarea tradițională a codului la fișierul functions.php al unei teme, pluginuri independente și pluginuri cu funcții personalizate WordPress până la utilizarea Must Use (mu-plugins). Fiecare metodă oferă propriul set de avantaje și dezavantaje potențiale, adaptate diferitelor nevoi și scenarii.

După cum puteți vedea, aceasta a fost o călătorie pentru mine ca dezvoltator și manager de proiect. Folosesc în continuare toate metodele în zilele noastre, în funcție de tipul de schimbare și cine ar trebui să aibă acces la ea.

Sper că acest articol vă va ajuta, colegii mei dezvoltatori juniori și seniori, să luați propriile decizii cu privire la modul corect de a adăuga codul ca plugin cu funcție personalizată în WordPress. Spune-mi în comentarii dacă am omis ceva.