web関連

【wordpress】Transients APIを使ってデータベースにキャッシュをしておく方法

2020/09/25

wordpressにTransients APIというデータベースにキャッシュを持たせることができる機能が標準搭載されているということなのでせっかくだから使ってみた時の備忘録

Transients APIとは

  • wordpressに標準搭載されていて一時的にデータベースのwp_optionにキャッシュすることができる
  • 有効期限のあるデータに対して使用することが推奨されている
  • 「site_」を関数に使うことでマルチサイトで使用することができる

ってやつ

Transients APIの使い方

キャッシュ保存用のコード

以下のコードは一日保存のコード

//キャッシュされたデータを取得:get_transient( 'キー' )
$value = get_transient( 'transient_key' );
if ( $value === false ) {//キャッシュが存在しないとき
    $value ='文字列、配列、オブジェクト何でも入れられる';
    //保存:set_transient( 'キー', '値', 'キャッシュ保持の時間(秒)' )
    set_transient( 'transient_key', $value, 60 * 60 * 24);
}
echo $value;

データベースには「wp_options」の中に「_transient_キー名」という名前で値を保存して、「_transient_timeout_キー名」でキャッシュの期間をタイムスタンプで保存している

初回のアクセス時にキャッシュされるみたいだから、値の上書きするときは一度削除するかキャッシュの期間が切れるまで待つ必要性があるっぽい

キャッシュ削除用のコード

// 削除:delete_transient( 'キー' )
delete_transient( 'transient_key' );

とりあえず使うならこんなもんかなぁ
思ってたより使いやすいね

永久的にキャッシュさせるような用途で使うモノではないみたい、用途としては記事ランキングとかSNSシェア数とか都度アクセス時に生成すると時間がかかる系の処理に使ったりしているみたい、便利だね

調べていたら、「wp_cache関数」という1アクセス中のみ保持されるキャッシュを作成する関数もあるね
ページを跨いでキャッシュを使うにはプラグインが必要だってことだから単ページのみのキャッシュ機能なのかな?
後で調べよっと