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

概要

get_transient関数は、WordPressでトランジェントの値を取得するために使用される関数です。トランジェントは、一時的なデータをデータベースに保存し、指定した期間が過ぎると自動的に削除される仕組みを持っています。この機能は、リソースの効率的な使用が求められる様々な場面で活用されます。以下は、get_transient関数がよく使われる場面の例です。

  1. 外部APIからのデータ取得キャッシュ
  2. 時間帯に依存するデータのキャッシュ
  3. 重いクエリ結果の一時保存
  4. フォーム入力値の一時保存
  5. ショートコードの結果のキャッシュ
  6. ループ内の繰り返し計算結果のキャッシュ
  7. ウェブサイトのパフォーマンス向上のためのデータストレージ
  8. 定期的に更新されるデータの一時保存

構文

$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関数は非推奨にも削除されたりしていません。

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


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