Transient and WordPress is still a tougher topic to many of the advanced users. WordPress Transients is an API that allows to temporarily cache information. With this one liner description like statement, it is quite difficult to really understand the practical usage of Transient and WordPress. There are some Plugins, like we wrote about W3 Total Cache Pro – that uses the Transient API and Fragment Cache only for one framework. Before we dig straightforwardly to Transient and WordPress, some extra things must be known and should be clear from theoretical point of view.
Transient and WordPress : The Less Understood Parts
Among the less understood parts, one is API or Application programming interface, we discussed in the linked article. We think, REST API or Representational State Transfer API is also another less known topic. Transients API is explained in codex :
1 | http://codex.wordpress.org/Transients_API |
We have shown a CocoaRestClient for testing RESTful API before and on codex, you will see the usage of PHP to use the functions. Under this term Transient and WordPress, an interesting feature of WordPress that allows you to temporarily cache information is hiding. In particular, it avoids recalculating certain recurring elements of your pages, allowing you to speed up the loading time. This can be for example:
---
- The list of most commented post
- The contents of your blogroll
- Your latest Tweets
The transient can be stored in the MySQL database in the wp options table.
Transient and WordPress : How it Works?
You can put whatever you want in a transient. This can be reduced to a number or a word . Here is how to create one:
1 | set_transient ($ name, $ value, $ expiration); |
$ = Unique name of the transient (maximum 45 characters).
$ = Value of the content thereof.
$ = Expiration time in seconds after which the transient is no longer valid (but still exists in the database).
To retrieve the value of a transient in WordPress, it is necessary to use the following function:
1 | get_transient ($ name); |
To test properly if a transient exists and is still valid, we will use the code written below :
1 2 3 | if (false === ($ value = get_transient ($ name))) { // Code which will only run if the transient does not exist or has expired } |
You could use the following function in the functions.php file of your WordPress theme:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | my_transient function () { // my is the name of the transient $mytransient='footransient'; //The transient non-existent or is it expired? if (false === ($transient=get_transient ($mytransient))) { // If yes, we call to any function to assign a value to the future transient. // In my example, this is my function foo $value = foo(); // we can update the value of the transient with $ value, and tell WordPress the expiration time of 60 seconds set_transient ($mytransient,$value,60); // update the value of my variable $transient $ Transient = get_transient ($mytransient) } // it returns the value of the transient updated return $transient; } |
Then, simply use the following code in your theme to the desired location:
1 | <?php echo my_transient(); ?> |
So, this ends the basics about Transient and WordPress, which basically is not very clear to most of the users.
Tagged With wordpress transient