Als het aankomt op het bouwen van een web-app met WordPress, bieden de krachtige API's veel hulp. Het toevoegen of ophalen van gegevens met de Options API is geen big deal. Maar soms moeten we tijdelijke gegevens opslaan met een vervaltijd.
WordPress biedt een intuïtieve caching via Transients om precies dat te doen, d.w.z. tijdelijke gegevens opslaan met een vervaltijd. We gaan transiënten gebruiken, dus ik dacht dat ik in dit artikel de WordPress Transients-API niet opnieuw zou bekijken.
Volgens de WordPress Codex:
De Transients-API lijkt sterk op de Options-API, maar heeft de extra functie van een vervaltijd, wat het gebruik van de API vereenvoudigt. wp_options databasetabel om in de cache opgeslagen informatie tijdelijk op te slaan.
In het kader van deze reeks bieden transiënten een efficiënte manier om gebruikers om te leiden naar de welkomstpagina wanneer ze een plug-in activeren door tijdelijke gegevens op te slaan.
In dit artikel verkennen we het concept van de Transients-API in WordPress en hoe dit verschilt van de Options-API. Dus, laten we er naar toe gaan.
Transiënten bieden ons manieren om gegevens in de cache tijdelijk op te slaan door een aangepaste naam (sleutel / waarde-paren) en een vervaltijd op te geven. Zodra het gedefinieerde tijdsbestek voorbij is, verlopen de transiënten en worden ze verwijderd. Deze transiënten verbeteren de prestaties en versnellen de algehele prestaties van de webapp.
Maar er rijst een vraag: Is de vervaltijd de enige reden voor met behulp van de WP Transient API?
Het antwoord is nee! Ondanks het feit dat de Options API hetzelfde doel dient voor het opslaan, zuiveren en ophalen van gegevens, biedt deze mogelijk niet de best mogelijke prestaties met grote sets gegevens.
Als tijdschema wordt toegevoegd, worden transiënten de meest geschikte manier om gegevens tijdelijk op te slaan. Om een kleiner aantal webquery's te garanderen, hebben transiënten de mogelijkheid om gegevens in het snelle geheugen op te slaan, bijvoorbeeld Memcached, in plaats van de traditionele WordPress-database. Merk ook op dat Transients inherent versneld worden door caching-plug-ins, waar normale Opties dat niet zijn. Zoals vermeld in de codex:
Een Memcached plug-in, bijvoorbeeld, zorgt ervoor dat WordPress tijdelijke waarden opslaat in een snel geheugen in plaats van in de database. Om deze reden moeten transiënten worden gebruikt om alle gegevens op te slaan waarvan verwacht wordt dat ze vervallen of die op elk moment kunnen vervallen. Van transiënten mag ook nooit worden aangenomen dat ze zich in de database bevinden, omdat ze daar misschien helemaal niet worden opgeslagen.
Wanneer u een functionaliteit nodig hebt die verloopt of wordt verwijderd na een bepaalde periode, gebruikt u daarom overgangen in plaats van opties. Daarover later meer.
Transiënten werken met een ongelooflijk eenvoudige interface. U kunt er drie basisfuncties mee uitvoeren:
set_transient ()
functieget_transient ()
functiedelete_transient ()
functieMet deze drie basishandelingen kunt u de webprestaties versnellen.
Gebruik de set_transient ()
functie om een transiënt te maken of bij te werken. De functie heeft drie parameters:
draad
) Naam van de transiënt. Moet 172 tekens lang of korter zijn.gemengd
) Het zijn de gegevens die moeten worden opgeslagen. Kan een PHP-variabele of een array-object zijn.int
) Maximale tijd tot verstrijken in seconden. Standaard 0 (geen vervaldatum).Point to Ponder: De uiterste gebruiksdatum die u instelt, is de maximale hoeveelheid tijd waarvoor een transiënt wordt opgeslagen. Na die tijd wordt de overgang verwijderd. Maar het kan ook vóór die tijd worden verwijderd. Omdat het deel uitmaakt van de cache, kan het voor die tijd door de gebruiker worden verwijderd. Denk dus altijd aan de vervaltijd als de maximale hoeveelheid tijd voor de levensduur van een transient met alleen de garantie dat deze daarna wordt verwijderd.
De eerste twee parameters zijn de sleutel waarde pair en zijn verplicht, terwijl de derde parameter, die de maximumtijd voor expiratie definieert, optioneel is.
Een praktisch voorbeeld van het aanroepen van deze functie is als volgt:
In het bovenstaande voorbeeld heb ik 60 seconden toegevoegd als de derde parameter, die de vervaltijd definieert waarna de overgang wordt verwijderd. Volgens het bovenstaande voorbeeld, het object _welcome_redirect_wpw
kan alleen de maximale leeftijd van 60 seconden hebben.
In WordPress 3.5 werden verschillende constanten geïntroduceerd om gemakkelijk de tijd uit te drukken. Deze constanten maken de code uitgebreider en nauwkeuriger. Dit is de lijst:
MINUTE_IN_SECONDS = 60 (seconden) 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
Na het opslaan van een waarde via de set_transient ()
functie, kunt u de waarde ophalen door de get_transient ()
functie.
Er is een enkele parameter voor nodig, de sleutel (dat wil zeggen de naam) van de transiënt $ voorbijgaande
, en geeft het (type gemengd
) waarde van de transiënt.
Het standaard formaat is:
In het geval van ons voorbeeld wordt de waarde opgehaald via:
Best makkelijk? Maar wat zou er gebeuren als de voorbijgaande tijd niet bestaat of is verlopen? Als dat het geval is, dan is de get_transient ()
functie retourneert a vals
waarde.
Ik raad aan dat je de identiteitsoperator gebruikt (===
) wanneer u de waarde van een overgang krijgt om te testen of deze vals is of niet.
$ a === $ b | Identiek | TRUE als $ a gelijk is aan $ b, en ze van hetzelfde type zijn. |
Er kunnen situaties zijn waarin u mogelijk de transienten wilt verwijderen voordat ze verlopen. De delete_transient ()
functie helpt je ermee. Het formaat is vergelijkbaar met de get_transient ()
functie.
Er is een enkele parameter voor nodig, de sleutel (dat wil zeggen de naam) van de transiënt $ voorbijgaande
, en verwijdert de overgang permanent.
Hier is het algemene formaat:
In ons geval kunnen we het als volgt verwijderen:
Transiënten kunnen worden gebruikt voor het cachen van alles, van de meest elementaire gegevens tot een complete widget. Sinds hun lancering zijn transiënten gebruikt in verschillende webprojecten. Hier zijn een paar praktische toepassingen van transiënten:
We zijn allemaal klaar met de basis van de WordPress Transients API. In de volgende twee artikelen ga ik een welkomstpagina maken voor een WordPress-plug-in. Ik zal mijn grove gedachten in iets betekenisvoller en praktischer plaatsen.
Ten slotte kun je al mijn cursussen en tutorials op mijn profielpagina verzamelen, en je kunt me volgen op mijn blog en / of contact opnemen op Twitter @mrahmadawais, waar ik schrijf over ontwikkelingsworkflows in de context van WordPress.
Zoals gebruikelijk, aarzel dan niet om eventuele vragen of opmerkingen achter te laten, en ik zal ernaar streven om op elk van hen te reageren.