説明
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

コメント