I’ve recently discovered the joy of transients in WordPress. You can read about them here: http://codex.wordpress.org/Transients_API. It’s a method of caching bits of information. If you have an object cache on your server like memcache, it’ll store it there, otherwise it stores it in the database.
You may wonder why I’d want to store the results of a database query in the database, since I’m still making a call. The difference is that the original query takes much longer to run than the transient retrieval.
Here’s the code I have for creating the transient:
But what happens if someone makes a change? We want to clear that transient, so that the next time it’s asked for it’ll recreate itself.
Now we have the results of of a complex query stored in a place that takes less time to retrieve, while making it so that it self clears when needed.