概要
この記事では、WordPressの`get_transient()`と`set_transient()`関数を使ったキャッシュ実装の例について紹介します。これらの関数を使用することで、データベースクエリや計算量の高い処理結果を一時的に保存し、ページの読み込み速度を向上させることができます。
サンプルコード
// キャッシュデータの取得
$cache_data = get_transient( 'my_cached_data' );
// キャッシュが存在しない場合
if ( false === $cache_data ) {
// キャッシュデータの計算または取得処理
$data = expensive_calculation_or_query();
// キャッシュデータのセット(60秒間有効)
set_transient( 'my_cached_data', $data, 60 );
$cache_data = $data;
}
// キャッシュデータの使用
echo $cache_data;
解説
- `get_transient('my_cached_data')`:指定したキー(ここでは'my_cached_data')で保存されたキャッシュデータを取得します。
- `set_transient('my_cached_data', $data, 60)`:指定したキーでデータをキャッシュし、有効期限を設定します(ここでは60秒)。
- キャッシュが存在しない場合、計算コストの高い処理(`expensive_calculation_or_query()`)を実行し、その結果をキャッシュに保存します。
- キャッシュが存在する場合、再計算をせずに保存されたデータを使用します。
ベストプラクティス
- キャッシュの有効期限は適切に設定することが重要です。短すぎると再計算のオーバーヘッドが増え、長すぎると古いデータが表示される可能性があります。
- キャッシュに保存するデータはシリアライズされている必要があります。オブジェクトや配列などの複雑なデータ構造を保存する場合は、`serialize()`と`unserialize()`関数を使ってデータを変換して保存しましょう。
これらのベストプラクティスに従い、`get_transient()`と`set_transient()`を適切に活用することで、WordPressサイトのパフォーマンスを向上させることができます。