概要
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 |
非推奨または削除されたバージョン
特定のワードプレスバージョンで非推奨または削除された情報はありません。