ワードプレスのset_transient関数の使用方法・解説

概要

set_transient 関数は、WordPressでデータを一時的に保存するための機能を提供します。この関数は、キャッシュや一時的なデータの保存に役立ち、データベースへのアクセスを減らすことができるため、パフォーマンスの向上とサーバー負荷の軽減に寄与します。

よく使われるシナリオ

  • ページのキャッシュを作成する際
  • 繰り返し呼び出されるAPIリクエストをキャッシュする時
  • ユーザーセッションデータを保存する場合
  • 大量のデータを一時的に保存したい場合
  • プラグインやテーマの一時的な設定を保存する際
  • リクエスト間でデータを持続させる必要がある場合
  • コンテンツのバージョン管理での一時保存
  • AJAX リクエストの結果をキャッシュする場合

構文

set_transient( string $transient, mixed $value, int $expiration = 0 )

パラメータ

  • $transient (string): 保存するトランジェントの名前。
  • $value (mixed): 保存する値。
  • $expiration (int): トランジェントの有効期限(秒)。0の場合、無期限。

戻り値

set_transient 関数は、正常に値が保存された場合に true を返し、失敗した場合には false を返します。

関連する関数

使用可能なバージョン

WordPress バージョン 2.9 から利用可能です。

コアファイルのパス

wp-includes/option.php

サンプルコード

サンプルコード1: 基本的なトランジェントの設定

set_transient('my_transient', 'Hello World', 60);

このサンプルコードは、my_transient という名前のトランジェントに「Hello World」という値を60秒間保存します。

サンプルコード2: ユーザーリクエストの結果をキャッシュ

$user_requests_count = get_transient('user_requests_count');
if ($user_requests_count === false) {
    $user_requests_count = 0; // 初期化
}
$user_requests_count++;
set_transient('user_requests_count', $user_requests_count, 3600);

このコードは、ユーザーのリクエスト数をカウントし、毎回のリクエストでトランジェントを更新します。1時間キャッシュします。

サンプルコード3: トランジェントの削除

delete_transient('my_transient');

このサンプルコードは、前に設定した my_transient トランジェントを削除します。

サンプルコード4: 条件に基づくトランジェントの保存

$data = some_function();
set_transient('cached_data', $data, 120);

このコードは、some_function() の結果をトランジェントとして保存します。120秒間のキャッシュ。

サンプルコード5: トランジェントが存在する場合の処理

if (false !== ($cached_data = get_transient('cached_data'))) {
    // キャッシュされたデータを使用
} else {
    // データを再取得して保存
    $data = fetch_data();
    set_transient('cached_data', $data, 300);
}

このサンプルは、キャッシュされたデータが存在する場合はそれを使用し、存在しない場合は新しくデータを取得してトランジェントに保存します。

この関数のアクションでの使用可能性

アクション 使用可能性
mu_plugin_loaded
registered_post_type
plugins_loaded
wp_roles_init
setup_theme
after_setup_theme
set_current_user
init
register_sidebar
wp_loaded
send_headers
parse_query
pre_get_posts
wp
template_redirect
get_header
wp_head

非推奨または削除されたバージョン

特定のワードプレスバージョンで非推奨または削除された情報はありません。

この関数について質問する


上の計算式の答えを入力してください