概要説明
アクセス毎にデータを取得、プログラムの実行を行わなくてよい場合はDBにキャッシュさせるカスタマイズ。キー、インターバールを各種設定ができるようにしているのでfunctions.phpに定義を追加しておくことで高速化に使用できます。プラグインを使わずに任意のタイミングでキャッシュをさせたいといった場合に活用できます。
コード – キャッシュ保存、キャッシュ取得
functions.php
/*---------------------------------------------------- DBキャッシュ キャッシュ保存・キャッシュ取得 ----------------------------------------------------*/ if ( !function_exists( 'get_db_cache' ) ){ // キャッシュ取得処理 function get_db_cache( $cache_key, $interval ) { $cache_key = md5($cache_key); // キャッシュ 保存時間を取得 $save_time = get_option( $cache_key.'-save-time' ); if (empty($save_time)) return false; if ( ( time() - $save_time ) < $interval ) { $cache = get_option( $cache_key.'-cache' ); if ( $cache == '' ) { return false; } else { return $cache; } } else { return false; } } // キャッシュ保存 function set_db_cache( $cache_key, $data ) { $cache_key = md5($cache_key); update_option( $cache_key.'-cache', $data ); // データを登録 update_option( $cache_key.'-save-time', time() ); // 保存時間を登録 } }
使用方法 – 動作確認コード
// キャッシュ取得 ( キー, キャッシュ有効秒数 ) $cache = get_db_cache('cache_test', '86400'); if ( $cache === false ) { $data = 'test'; // キャッシュ保存 set_db_cache('cache_test', $data); // 動作検証用ログ debug.logに出力 error_log( 'Chceck Log: set_db_cache ' . $data ); } else { $data = $cache; // 動作検証用ログ debug.logに出力 error_log( 'Chceck Log: get_db_cache' . $cache ); }
オススメの使用方法
- APIからの別サイトからのデータ取得を毎回行う必要がない場合はキャッシュさせる
- 人気ランキングなど重い処理の表示データをキャッシュさせる