Back to the future with WordPress transients API

First thing to note: transients is an API. And here is how the Codex describes it:Good, you already achieved step one. But do you really know what transients are, and to use them?
I recently did something pretty interesting: as a Codecanyon author I wanted to show on my “About me” page the number of happy clients I have. As Codecanyon is a marketplace, the number of happy clients increase every day, and I can’t update the value manually everyday. So, I decided to use the Envato API (Envato is the company behind many marketplaces such Codecanyon and Themeforest)  to retrieve my sales value, store this value in my database and refresh this value every 12 hours. This is exactly what transients API does.
I’m not going to explain the process to retrieve values from Envato API, so let’s say that the sales number is stored in a $envato_happy_clients variable. Here is what the code would be:

If you use WordPress, you may have heard this word at least once: “transient”.

I this quick post I’m going to explain what transients are and how to use them in your own developments. First of all, and this should be your first reflex, let’s go to the Codex.
I guess it’s a bit clearer now isn’t it? In other words, the transient API is a perfect way to store your own variables for a limited period of time before they self-destruct. I already talked about transients on my website, explaining how to cache the result of a query using transients, but today we are going to make a more basic use of the API.
// Cache timeout in seconds
$CACHE_EXPIRATION = 60*60*12; // 12 hours // Transient ID & cached data
$transient_id  = ‘remi_happy_clients’;
$happy_clients = get_transient( $transient_id ); // Is data already in local or new call to API
if ( !$happy_clients ) { /*
Envato API call to retrieve sales number.
Let’s assume the result is $envato_happy_clients
*/ $happy_clients = $envato_happy_clients; // Set the transient – cache item data
set_transient( $transient_id, $happy_clients, $CACHE_EXPIRATION ); } echo $happy_clients;

Well, this is it! It’s simple but powerful, and I really encourage you to have a deep look to this API that can do much more!
This page contains the technical documentation of the WordPress Transients API, which offers a simple and standardized way of storing cached data in the database temporarily by giving it a custom name and a timeframe after which it will expire and be deleted.

Posted by WordPress Guru