Când vine vorba de construirea unei aplicații web cu WordPress, API-urile sale puternice oferă un mare ajutor. Adăugarea sau preluarea oricărei date cu API-ul Opțiuni nu este o afacere mare. Dar, uneori, trebuie să stocăm date temporare cu un timp de expirare.
WordPress oferă o cache-ul intuitiv prin Transients pentru a face exact acest lucru, și anume stocarea datelor temporare cu un timp de expirare. Vom folosi tranziții, deci m-am gândit de ce să nu aruncăm o privire nouă asupra API-ului WordPress Transients în acest articol.
Conform Codului WordPress:
API-ul Transients este foarte similar cu API Options, dar cu caracteristica adăugată a unui timp de expirare, care simplifică procesul de utilizare a wp_options tabelul de date pentru stocarea temporară a informațiilor memorate în cache.
În scopul acestei serii, tranzițiile oferă o modalitate eficientă de a redirecționa utilizatorii către pagina de întâmpinare atunci când acționează un plugin prin stocarea datelor temporare.
În acest articol, vom explora conceptul de API Transients în WordPress și cum diferă de API-ul Options. Deci, hai să ajungem la asta.
Teritorii ne oferă modalități de stocare temporară a informațiilor cache, furnizând un nume personalizat (perechi cheie-valoare) și un timp de expirare. Odată ce intervalul de timp definit este încheiat, tranzițiile expiră și se elimină. Aceste tranziții îmbunătățesc performanța și accelerează performanța generală a aplicațiilor web.
Dar se pune o întrebare: Timpul de expirare este singurul motiv utilizând API-ul tranzitoriu WP?
Raspunsul este nu! În ciuda faptului că opțiunea API pentru opțiuni servește aceluiași scop pentru stocarea, dezinfectarea și recuperarea datelor, este posibil ca acesta să nu ofere cea mai bună performanță posibilă cu seturi mari de date.
Odată cu adăugarea unui interval de timp, tranzitorii devin cel mai adecvat mod de stocare temporară a datelor. Pentru a asigura un număr mai mic de interogări web, tranzitorii au capacitatea de a stoca date în memoria rapidă, de ex. Memacached, în loc de baza de date tradițională WordPress. De asemenea, este de remarcat faptul că Transients sunt în mod inerent spedit de cache plugin-uri, în cazul în care Opțiuni normale nu sunt. Așa cum am menționat în codul:
Un plugin Memcached, de exemplu, ar face ca WordPress să stocheze valori tranzitorii în memorie rapidă în loc să fie în baza de date. Din acest motiv, tranzitorii ar trebui să fie utilizate pentru a stoca orice date care se așteaptă să expire sau care pot expira în orice moment. De asemenea, nu trebuie să se presupună că și în baza de date nu ar trebui să se prezinte niciodată tranziții, deoarece acestea nu pot fi stocate acolo deloc.
Prin urmare, ori de câte ori aveți nevoie de o funcționalitate care expiră sau se șterge după o anumită perioadă de timp, utilizați parametrii de tranziție în loc de opțiuni. Mai multe despre asta mai târziu.
Tranzitorii lucrează cu o interfață incredibil de simplă. Puteți efectua cu ele trei funcții de bază:
set_transient ()
funcţieget_transient ()
funcţiedelete_transient ()
funcţieAceste trei operațiuni de bază vă pot ajuta să accelerați performanța web.
Folosește set_transient ()
funcția de a crea sau actualiza orice tranzitorie. Funcția are trei parametri:
şir
) Numele tranzitorii. Trebuie să aibă 172 caractere sau mai puțin în lungime.amestecat
) Este datele care trebuie să fie stocate. Poate fi o variabilă PHP sau un obiect matrice.int
) Timp maxim până la expirare în secunde. Implicit 0 (fără expirare).Indreptați-vă la Ponder: Data de expirare setată este perioada maximă de timp pentru care va fi stocat un tranzitoriu. După acel moment, transientul se șterge. Dar se poate obține și șters înainte de acel moment. Deoarece face parte din cache, acesta poate fi șters de utilizator înainte de acel moment. Deci, întotdeauna gândiți-vă la timpul de expirare ca fiind perioada maximă de timp pentru viața unui tranzitor cu doar garanția că acesta va fi șters după aceea.
Primii doi parametri sunt valoare cheie pereche și sunt obligatorii, în timp ce al treilea parametru, care definește timpul maxim de expirare, este opțional.
Un exemplu practic de apelare a acestei funcții este după cum urmează:
În exemplul de mai sus, am adăugat 60 secunde ca al treilea parametru, care definește timpul de expirare după care tranzientul devine șters. În conformitate cu exemplul de mai sus, obiectul _welcome_redirect_wpw
poate avea vârsta maximă de 60 de secunde.
În WordPress 3.5, mai multe constante au fost introduse pentru a exprima cu ușurință timpul. Aceste constante fac codul mai cuprinzător și mai precis. Iată lista:
MINUTE_IN_SECONDS = 60 (secunde) HOUR_IN_SECONDS = 60 * MINUTE_IN_SECONDS DAY_IN_SECONDS = 24 * HOUR_IN_SECONDS WEEK_IN_SECONDS = 7 * DAY_IN_SECONDS YEAR_IN_SECONDS = 365 * DAY_IN_SECONDS
După stocarea unei valori prin set_transient ()
funcția, puteți prelua valoarea apelând get_transient ()
funcţie.
Este nevoie de un singur parametru, cheia (adică numele) a tranzitorului $ tranzitorie
, și returnează (tip amestecat
) valoarea tranzitorii.
Formatul standard este:
În cazul exemplului nostru, valoarea este extrasă prin:
Destul de simplu? Dar ce s-ar întâmpla dacă tranzitorul nu există sau nu a expirat? Dacă este cazul, atunci get_transient ()
funcția returnează a fals
valoare.
Vă recomandăm să utilizați operatorul de identitate (===
) atunci când obțineți valoarea unui tranzitoriu pentru a testa dacă este fals sau nu.
$ a === $ b | Identic | ADEVĂRAT dacă $ a este egală cu $ b, și sunt de același tip. |
Pot exista situații în care este posibil să doriți să ștergeți tranzițiile înainte de expirarea lor. delete_transient ()
vă ajută. Formatul său este similar cu get_transient ()
funcţie.
Este nevoie de un singur parametru, cheia (adică numele) a tranzitorului $ tranzitorie
, și șterge permanent.
Iată formatul general:
În cazul nostru, îl putem șterge astfel:
Tranzitorii pot fi utilizați pentru a cache-ul de la cel mai de bază tip de date la un widget complet. De la lansarea lor, tranzițiile au fost utilizate în diferite proiecte web. Iată câteva utilizări practice ale tranzițiilor:
Cu toții suntem pregătiți de elementele de bază ale API-ului WordPress Transients. În următoarele două articole, voi construi o pagină de bun venit pentru un plugin WordPress. Îmi pun gândurile mele crude în ceva mai semnificativ și mai practic.
În cele din urmă, îți poți captura toate cursurile și tutorialele pe pagina mea de profil și poți să mă urmărești pe blogul meu și / sau să contactezi Twitter @mrahmadawais unde scriu despre fluxurile de lucru în contextul WordPress.
Ca de obicei, nu ezitați să lăsați mai jos întrebări sau comentarii, și mă voi adresa fiecăruia.