identifying if a transient exists without the WordPress APIs

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

identifying if a transient exists without the WordPress APIs

Haluk Karamete
Hi guys,

I know this would have been an easy one using the WordPress API's - as the
answer to my question would be -> just use get_transient dude!

But I want to figure this out with straight mysql - as I need this
information at the mother of all pages, the index.php at the site root -
before it has loaded the blog-header.

If the name of the transient I'm after is 'my_transient', what mysql
statement would reliably get me its contents - if 'my_transient' has not
expired and still available?

Needless to say, that SQL statement cannot tap into the wpdb APIs for the
same very reason; WordPress has not loaded yet. So this has to be straight
mysql solution.

I know that the transients may not always be stored in the options table (
 it could be memory based ) but here we will assume that we use options
table for that.
_______________________________________________
wp-hackers mailing list
[hidden email]
http://lists.automattic.com/mailman/listinfo/wp-hackers
Reply | Threaded
Open this post in threaded view
|

Re: identifying if a transient exists without the WordPress APIs

Haluk Karamete
I've got this sorted out!

Am I missing anything?


$my_transient = 'my_transient';
 $transient_timeout = '_transient_timeout_' . $my_transient;
 if ( blp_get_option( $transient_timeout ) < time() ): //see the wrapper
function I included below
 //all bets are off!
//the transient I'm after must have been expired or never existed to begin
with!
 else:
 //bingo transient is available, get it.
$value = blp_get_option( $my_transient );
 endif;

 // the wrapper function ( which was inspired by the get_option's guts )
 function blp_get_option( $transient_name ) {
 run the following SQL and return the result either FALSE or with the
matched option value
 "SELECT option_value FROM `our_prefix_here_options` WHERE option_name =
'{$transient_name}' LIMIT 1";
 }


On Wed, Jul 8, 2015 at 9:36 AM, Haluk Karamete <[hidden email]>
wrote:

> Hi guys,
>
> I know this would have been an easy one using the WordPress API's - as the
> answer to my question would be -> just use get_transient dude!
>
> But I want to figure this out with straight mysql - as I need this
> information at the mother of all pages, the index.php at the site root -
> before it has loaded the blog-header.
>
> If the name of the transient I'm after is 'my_transient', what mysql
> statement would reliably get me its contents - if 'my_transient' has not
> expired and still available?
>
> Needless to say, that SQL statement cannot tap into the wpdb APIs for the
> same very reason; WordPress has not loaded yet. So this has to be straight
> mysql solution.
>
> I know that the transients may not always be stored in the options table (
>  it could be memory based ) but here we will assume that we use options
> table for that.
>
>
_______________________________________________
wp-hackers mailing list
[hidden email]
http://lists.automattic.com/mailman/listinfo/wp-hackers