スポンサーリンク

【WordPress】Transient(キャッシュ)の有効期限を取得・確認する方法

WordPress

WordPressで一時的にデータを保管する際の機能としてTransientがありますが、キャッシュ処理の判定時などにキャッシュの有効期限を確認したい場合などがあるかと思います。

ここでは、WordPressのTransientの有効期限の取得方法について解説します。

スポンサーリンク

set_transient()とget_transient()

WordPressのキャッシュ関連の関数にset_transient()とget_transient()関数があります。

Web APIやデータベースから取得したデータなどをTransient関数を使うことでデータをキャッシュとして一時的に保管することができます。

短時間で更新されにくいデータであればデータアクセスや処理の負荷、WebAPIへの繰り返しのアクセスを抑制することができるため、サイトの高速化やサーバーへの負荷軽減には欠かせない機能です。

Transientを操作する関数にはset_transient()とget_transient()、delete_transient()があり、set_transient()関数で情報の内容や有効期限の設定・保存を行うことができ、get_transient()関数で情報の内容を取得することができます。

get_transient()関数は、有効期限を過ぎたtransientに対してはfalseを返すため、シンプルな判定でキャッシュの利用、再取得などを処理することが可能です。

//キャッシュを確認
if (false === ($json = get_transient('json_001'))) {

  //キャッシュがなければ再取得して保存
  $json = get_my_json();
  set_transient( 'json_001', $json);
}

//処理を継続
...

Transientの利用自体はとてもシンプルなのですが、Transientの参照は値のみで、あと何日で有効期限が切れる、などの情報がそのままでは取得できません。

スポンサーリンク

Transientの有効期限を取得する関数

Transientの有効期限を取得するにはTransientの内容を保存したWordPressのデータベースから直接取り出します。

以下の関数をfunctions.phpなどに記載します。

function get_transient_timeout($transient) {
    global $wpdb;
    $transient_timeout = $wpdb->get_col( "
      SELECT option_value
      FROM $wpdb->options
      WHERE option_name
      LIKE '%_transient_timeout_$transient'
    " );
    return ($transient_timeout) ? $transient_timeout[0] : false;
}

WordPress&Cocoonのお悩みにお答えします

クラベルではWordPressのブログサイト構築、Cocoonテーマの導入やカスタマイズに関するご相談を承っております。

お困りの方はぜひ一度お問い合わせください。また、現在ココナラをつかったサービス出品も始めてみました。お悩みおひとつの解決からお手軽にお申込みできますので、こちらもぜひあわせてご覧ください。

最短当日★ワードプレスの疑問質問トラブル解決します ご相談無料!初心者歓迎!優しく丁寧、徹底的にサポートします!
Cocoonテーマサイト構築&カスタマイズします ご相談無料★公式サポート対象外もOK!プログラミングはお任せ
WordPress Web開発
お読みいただきありがとうございました。
最後に「いいね!」をいただけると大変励みになります。
最新情報をお届けします。
クラベルをフォローする
スポンサーリンク
この記事を書いた人
クラベル

Webサイト構築、Wordpressのカスタマイズやphpプログラミングなどやってます。BPM(ビジネスプロセス管理)、BPR(業務改革)コンサルなどにも従事。世の中すべてピタゴラ装置をモットーに自動化します。ブログは省エネ運営中。Cocoonカスタマイズやゲーム、ガジェットの話題など。

プロフィール詳細、お仕事のご依頼はこちら

クラベルをフォローする
クラベル

コメント

タイトルとURLをコピーしました