Categories: WordPress Tutorials

Back to the future with WordPress transients API

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

Good, you already achieved step one. But do you really know what transients are, and to use them?

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.

First thing to note: transients is an API. And here is how the Codex describes it:

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.

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.

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:


<?php
// 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;
?>

And the result is something like you can see on my “About me” page. So, basically, we define in $CACHE_EXPIRATION the period we want to keep the cached data, we then place the content of the transient in $happy_clients variable and then we check if the value is set. If not we connecte to the Envato API to retrieve fresh information, otherwise we simply echo the happy customers value.

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!

Remi

Remi is an expert WordPress developer that coded many great free and premium themes and plugins. His experience on WordPress allows him to produce great stuff and to propose advanced tutorials. Remicorson.com

View Comments

  • Really cool
    I tried to do something like you but it has increased my Queries (20 to 23 but if I disable my custom query it give me 15 queries)

    Here is my code :

    $exemple = get_transient('exemples');
    if (false === $exemple) {
    $exemple = new WP_Query('cat='.$catss.'');
    set_transient('exemples', $exemple);
    }
    while ($exemple->have_posts()): $exemple->the_post();

    Thanks for your help

Recent Posts

Divi AI Review: Honest Thoughts + Testing to Help You Decide

On the fence about using Divi AI to improve your workflows when building websites with…

3 hours ago

Kinsta Hosting Review 2024: Is This WordPress Host Worth the Investment?

Kinsta is a recognizable brand in the WordPress hosting space. The main thing that sets…

1 month ago

10 Best WordPress Website Maintenance and Support Services in 2024

Searching for the best WordPress maintenance service to get a little helping hand with your…

3 months ago

8 Best Managed WordPress Hosting Providers for 2024 Compared

Do you really need managed WordPress hosting? Let's face it: Running a WordPress blog or…

4 months ago

WP Engine Review (2024): Does It Really Make Your Site Faster?

WP Engine is one of the very first companies to start offering tailor-made hosting for…

4 months ago

Cloudways Review (2024): Is This a Good Alternative to Cloud Hosting?

Cloudways is a very original type of a web hosting company when compared to other…

4 months ago