wp_cache_get() の使い方|説明・引数・注意点

説明

wp_cache_get() は、オブジェクトキャッシュからデータを取得する関数です。

基本構文

wp_cache_get( int|string $key, string $group = '', bool $force = false, bool &$found = null ): mixed|false

引数

  • $key:キャッシュキー
  • $group:グループ名
  • $force:キャッシュを無視して再取得するか
  • $found:見つかったかどうかを受け取る変数

戻り値

キャッシュされた値。なければ false。

使い方(サンプル)

$value = wp_cache_get( 'my_key', 'my_group' );

注意点

  • 既定ではリクエストの間だけ有効なキャッシュです。Redisなどの永続オブジェクトキャッシュを導入すると、リクエストをまたいで保持されます。

実務での使いどころ

  • 同じリクエストの中で、同じ処理の結果を、使い回すとき(重複したクエリの削減)。
  • 永続的なオブジェクトキャッシュ(RedisやMemcachedなど)を使うサイトで、値をキャッシュするとき。

よくあるミスと対処

  • 保存した値が、次のリクエストでも残ると考えている。永続的なオブジェクトキャッシュがない環境では、リクエストごとに消える。
  • 見つからないときは false が返る。値が false のときと区別したいなら、第4引数 $found を使う。
  • キーのグループを指定せず、他の処理とキーが重なる。

NG例

$value = wp_cache_get( 'my_key' ); // 次のリクエストでも残ると思っている

OK例

$found = false;
$value = wp_cache_get( 'my_key', 'my_group', false, $found );
if ( ! $found ) {
	$value = my_heavy_query();
	wp_cache_set( 'my_key', $value, 'my_group' );
}

使い分け早見表

関数 永続性
wp_cache_get() 永続的なオブジェクトキャッシュがあれば、リクエストをまたぐ。なければ、そのリクエストの間だけ
get_transient() データベース(または永続キャッシュ)に保存される。期限が来るまで、残ることが多い(期限前でも、消える場合がある)
get_option() データベースに保存され、恒久的

関連項目

wp_cache_set()、get_transient()

公式リファレンス:wp_cache_get() | Function | WordPress Developer Resources

コメント

タイトルとURLをコピーしました