Komma igång med WordPress Transients API, del 1

En av de trevligaste sakerna att arbeta med WordPress är kraften i dess API. När du skapar teman och / eller plugins gör plattformen otroligt enkelt att serialisera och hämta data. Faktum är att API: n sammanfattar många av de gemensamma utmaningarna för att arbeta med data som datasanitisering och effektivt hämtar data på begäran. Under de två följande inlägget tar vi en titt på Transient API, varför det är viktigt, hur man använder det och tittar på en praktisk implementering som vi kan använda i framtida projekt.

Generellt sett uppnås allt ovan med WordPress Options API, vilket är utmärkt för att spara, uppdatera och läsa alternativ, men om du arbetar med en stor uppsättning data kanske inte Options API möjliggör optimal prestanda. . Specifikt kan du förbättra det övergripande resultatet av ditt arbete (och dess utvidgningsbarhet med annan programvara) om du skulle utnyttja Transient API.


Vad är Transients API?

Enkelt uttryckt erbjuder Transient API ett sätt att lagra information i WordPress-databasen med en utgångstid. När du sparar information med hjälp av API-alternativet lagras värden med en tangent och ett värde.

Till exempel, säg att du arbetar med ett plugin som sparar ditt Twitter-användarnamn i ett anpassat fält med namnet "Twitter". Du kan konceptualisera hur WordPress sparar denna information kan behandla "twitter" som nyckeln och ditt användarnamn (säg 'MoreTom') som värdet.

Skillnaden i sättet att Transients API sparar informationen är att en tredje data - en utgångstid - sparas i databasen. Detta är nyckeln för att påskynda prestanda, nämligen med caching.

Dessutom sparar data som sparas via API: n (kallad transienter) genom att cachepluggar och cachingprogrammeras medan standard WordPress-alternativ inte är. När du till exempel lagrar ett värde med hjälp av Transient API, kommer caching-programvaran - som memcached - att instruera WordPress att lagra värden på ett sådant sätt att det enkelt kan hämta det på varje sidförfrågan istället för att slå databasen varje gång.

Häftig va?

Tillvägagångssättet är att eftersom transienter har en utgångstid, är de inte garanterade att de är databaser, så vi bör se till att värdena som lagras är sådana som inte är kritiska för temat eller plugins framgång (även om det finns ett sätt att hantera detta så kommer vi kolla in nästa post).

Det viktigaste att komma ihåg är att du inte vill lagra alla alternativvärden med hjälp av Transients API. En bra tumregel är att lagra de värden som ofta är dyraste och som inte krävs för sidladdningar.

Så användbart som förståelse API är verkligen, den verkliga fördelen kommer att faktiskt använda den.


Använda Transients API

Det trevliga med Transient APIs är att det är extremt väl implementerat med tre funktioner, två av vilka du kommer att använda regelbundet. De tre huvudoperationerna för transienter ställer in värden, får värden och tar bort värden.

Ställ in en transient

Att spara en övergång kräver tre specifika uppgifter:

  • Nyckeln som ska användas för att hämta värdet
  • Värdet för serialisering
  • Mängden tid (i sekunder) för att lagra data innan du uppdaterar den

Undertecknandet av metoden är följande:

  • set_transient ($ key, $ värde, $ expiration);

Enkelt, eller hur? Ett enkelt exempel för att ringa denna funktion skulle vara följande:

 set_transient ("twitter", "MoreTom", 60 * 60 * 12);

Hämta transienter

Att hämta en transient är ännu enklare än inställningen. Faktum är att det väldigt liknar att man hämtar ett alternativ från WordPress Options API. Allt du behöver veta är nyckeln som definierades när du ställde in värdet.

Undertecknandet av metoden som ansvarar för att returnera värdet är:

  • get_transient ($ key);

I det följande med exemplet ovan hämtar vi användarens Twitter-användarnamn genom att ringa:

 get_transient ( 'twitter');

Enkelt, va?

Radera övergångar

Inställning och hämtning av transienter är de två vanligaste funktionerna i API: n, men det finns tillfällen under vilka du kan behöva ta bort ett värde innan utgångstiden har uppnåtts.

I så fall kan du utnyttja delete_transient-funktionen:

  • delete_transient ($ key);

På samma sätt som att hämta ett värde, skickar du enkelt nyckeln som används för att identifiera det övergående värdet till funktionen:

 delete_transient ( 'twitter');

Funktionen kommer att returneras sant om värdet är korrekt borttaget, felaktigt om värdet inte togs bort eller om raderingen av värdet inte fungerade korrekt.

Självklart betalar prestationsförmånerna utdelning i jämförelse med hur svårt det är att utnyttja API: n. Kanske är det viktigaste att komma ihåg att du inte vill lagra alla alternativvärden med hjälp av Transients API - bara de som är de dyraste och som sällan förändras.

I nästa inlägg ser vi en praktisk implementering av API: n genom att skapa ett plugin som utnyttjar API: n.