かなり簡単に思えます。これは、「memcache」タイプの方法でオブジェクトを格納できるリテラル クラス ヘルパーです。最初にトランジェントを設定します
function do_something_here($callback_param = 'value'){
$key = 'do_something_' . $callback_param;//set the name of our transient equal to the value of the callback param being passed in the function.
$my_query = get_transient($myKey); //if we've stored this request before, then use it.
if($my_query !=== false){
//we found a previous existing version of this query. let's use it.
return $my_query;
}else{
//it doesn't exist, we need to build the transient.
//do our database querying here, global $wpdb; etc
//We are going to pretend our returned variable is 'george'
$value = george;
$length = 60*60*24; //how long do we want the transient to exist? 1 day here.
set_transient($key, $value, $length);
return $value;
}
}
トリガーを作成し、'$key' の名前にバインドしたので、key が示す正確な値 (前に宣言した値) を使用していつでもアクセスできます。
echo 'I wanted to do something, so : ' . do_something('value') . ' is what i did! ';
この形式を利用することで、クエリを「キャッシュ」のような世界に保持し、それらを使用して応答を生成できます。これは、MySql で「トリガー」イベントを使用する方法に似ています。実際、これは一般にロング ポーリングと呼ばれるテクニックの一部です。