DBキャッシュ機能を実装 外部データなど任意の情報を一定期間キャッシュさせる

概要説明

アクセス毎にデータを取得、プログラムの実行を行わなくてよい場合は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からの別サイトからのデータ取得を毎回行う必要がない場合はキャッシュさせる
  • 人気ランキングなど重い処理の表示データをキャッシュさせる

期限切れキャッシュデータの確認、削除

簡易キャッシュの確認
SELECT * FROM `wp_options` WHERE `option_name` like '%-cache';
SELECT * FROM `wp_options` WHERE `option_name` like '%-save-time';

簡易キャッシュの削除
delete FROM `wp_options` WHERE `option_name` like '%-cache';
delete FROM `wp_options` WHERE `option_name` like '%-save-time';

関連機能

  1. WordPress Contact Form 7 禁止ワードと日本語判定によるスパム判定処理

  2. 日本語を含むファイル名のファイルをアップロードした時に自動的にリネームさせる

  3. WordPress カテゴリーごとにテキスト色、背景色の設定が行えるように項目を追加する

サイドバー

よく使うカスタマイズ

最近の記事

アニメの名言集

感謝するぜ お前と出会えた
これまでの全てに!!!

HUNTER×HUNTER
by ネテロ

Profile

PAGE TOP
Amazon プライム対象