概要
get_transient
関数は、WordPressでトランジェントの値を取得するために使用される関数です。トランジェントは、一時的なデータをデータベースに保存し、指定した期間が過ぎると自動的に削除される仕組みを持っています。この機能は、リソースの効率的な使用が求められる様々な場面で活用されます。以下は、get_transient
関数がよく使われる場面の例です。
- 外部APIからのデータ取得キャッシュ
- 時間帯に依存するデータのキャッシュ
- 重いクエリ結果の一時保存
- フォーム入力値の一時保存
- ショートコードの結果のキャッシュ
- ループ内の繰り返し計算結果のキャッシュ
- ウェブサイトのパフォーマンス向上のためのデータストレージ
- 定期的に更新されるデータの一時保存
構文
$transient = get_transient( $transient_key );
パラメータ
$transient_key
(string) : 取得するトランジェントの名前(キー)。
戻り値
- トランジェントが設定されていればその値を返し、無ければ
false
を返します。
関連する関数
この関数を使用可能なバージョン
- WordPress 2.9以降で使用可能です。
この関数が含まれるワードプレスのコアファイルのパス
wp-includes/option.php
サンプルコード
以下にget_transient
関数の使用例を5つ示します。
サンプルコード1: APIのレスポンスを取得する
$response = get_transient( 'api_response' );
if ( false === $response ) {
// APIを呼び出し、レスポンスを取得
$response = wp_remote_get( 'https://api.example.com/data' );
set_transient( 'api_response', $response, 12 * HOUR_IN_SECONDS );
}
このコードは、APIからのレスポンスを取得します。もしトランジェントが存在しない場合はAPIを呼び出し、その結果をトランジェントとして保存します。
サンプルコード2: 重いクエリの結果をキャッシュする
$results = get_transient( 'heavy_query_results' );
if ( false === $results ) {
global $wpdb;
$results = $wpdb->get_results( 'SELECT * FROM wp_heavy_table' );
set_transient( 'heavy_query_results', $results, HOUR_IN_SECONDS );
}
この例では、データベースクエリの結果をトランジェントとしてキャッシュしています。一度取得した結果は、1時間トランジェントとして保存されます。
サンプルコード3: 繰り返し計算結果をキャッシュ
$calculated_value = get_transient( 'calculated_value' );
if ( false === $calculated_value ) {
$calculated_value = complex_calculation();
set_transient( 'calculated_value', $calculated_value, 24 * HOUR_IN_SECONDS );
}
ここでは、時間のかかる計算結果をトランジェントとして保存し、結果を繰り返し取得する際のパフォーマンスを向上させています。
サンプルコード4: ユーザーの一時的なデータを保存
$user_data = get_transient( 'user_data_' . get_current_user_id() );
if ( false === $user_data ) {
$user_data = fetch_user_data(); // ユーザーデータを取得
set_transient( 'user_data_' . get_current_user_id(), $user_data, 30 * MINUTE_IN_SECONDS );
}
この例では、現在のユーザーに関連するデータを一時的に保存しています。30分間トランジェントとして保持されます。
サンプルコード5: フォームの入力を保管する
$form_input = get_transient( 'form_input_' . session_id() );
if ( false === $form_input ) {
$form_input = $_POST['form_field'] ?? '';
set_transient( 'form_input_' . session_id(), $form_input, 10 * MINUTE_IN_SECONDS );
}
このコードは、フォームの入力を一時的に保存するためにトランジェントを使用しています。10分間保持されます。
この関数のアクションでの使用可能性
アクション | 使用可能性 |
---|---|
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 |
非推奨または削除されたワードプレスバージョン
特に、get_transient
関数は非推奨にも削除されたりしていません。