2

私は Wordpress を使用しており、サイト固有のプラグインをいくつか開発しました。さらに、バックエンドのプラグインの要件に合わせてテーマをカスタマイズしています。

ここ数日、Wordpress でトランジェントをいじっていました。一部のチュートリアルでは、「カスタム クエリを使用していて、その結果がキャッシュ可能である場合: トランジェントを使用する」と言っています。良さそうに聞こえますが、本当の利点を得るためにトランジェントをいつ使うべきか疑問に思っています。つまり、トランジェントを使用する場合でも、バックグラウンドで少なくとも 2 つのクエリが必要ですよね? 1 つ目は有効性を確認するためのもので、2 つ目は一時的なもの自体のためのものです。

では、カスタム WP_Query に一時的なものを使用することは本当に便利ですか? あなたの助けと考えに感謝します。

4

1 に答える 1

3

かなり簡単に思えます。これは、「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 で「トリガー」イベントを使用する方法に似ています。実際、これは一般にロング ポーリングと呼ばれるテクニックの一部です。

于 2012-03-07T08:46:58.980 に答える