• サイトデザイン工事中です。ご意見をお寄せください
  • 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細

このWikiはいつでも誰でも編集できます

関数リファレンス/WP Cache

提供:WordPress Codex 日本語版
移動: 案内, 検索

WP_Object_Cacheは複雑なデータベースクエリなどの生成に負荷のかかるデータをキャッシュするためのWordPressクラスです。オブジェクトキャッシュはwp-includes/cache.phpに定義されています。

プラグインを作るときにはこのコードを直接使わず、以下に挙げるwp_cache関数を使ってください。

デフォルトでは、オブジェクトキャッシュは永続的なものではありません。これはつまり、データはメモリ上にのみ存在し、セッションの間を通してしか存在しないことを意味します。永続的なキャッシュを利用するプラグインを使わずに、キャッシュされたデータがすべてのページをまたいで永続的に保存されることはありません。詳細はこの下の#Persistent_Cache_Pluginsセクションを参照してください。

wp_cache関数

ほとんどの関数は次の値を取ります:

wp_cache_add( $key, $data, $group )

この関数はキャッシュキーがまだ存在しない場合にキャッシュを生成します。もし存在する場合、データはキャッシュに追加されず、関数はfalseを返します。

wp_cache_set( $key, $data, $group )

キャッシュにデータを追加します。キャッシュが存在する場合は上書きされ、存在しない場合は生成されます。

wp_cache_get( $key, $group )

キャッシュされたオブジェクトを取得します。キャッシュキーが存在しない場合はfalseを返します。

wp_cache_delete( $key, $group )

与えられたキーのキャッシュを削除します。

wp_cache_replace( $key, $data, $group )

与えられたキーのキャッシュが存在すれば置換し、なければfalseを返します。これはwp_cache_set()と似ていますが、すでに存在しない場合は何もしない点が異なります。

wp_cache_flush()

すべてのキャッシュデータを削除します。

オブジェクトキャッシュの一番よくある例としては、負荷の高いSQLクエリの実行結果をキャッシュし、ページ読み込み内で何度も実行させないというものです。次の例では、$query変数を負荷の高いSQLクエリだと考えてください。

 $result = wp_cache_get( 'my_result' );
 if ( false == $result ) {
 	$result = $wpdb->get_results( $query );
 	wp_cache_set( 'my_result', $result );
 } 
 // $resultを処理する

永続的キャッシュ

WordPress2.5以前では、wp-config.phpdefine('WP_CACHE', true)を書いた場合のみ、wp_cache関数を使って保存されたデータは永続的に保存されました。

今ではそのようなことはなく、以下のような永続的キャッシュプラグインを使わない限り、define('WP_CACHE', true)意味がありません

永続的なキャッシュプラグイン

Transients_APIはデータに名前をつけて有効期限を設定することで、永続的かつ時限的なキャッシングを提供します。

追加情報

個人用ツール
名前空間
変種
操作
このサイトについて
特集
サーバ別情報
リファレンス
ドキュメント整備
ツールボックス