set_transient()


WordPressのset_transient()関数は、一定期間データを保存するために使用されます。この関数は、キャッシュのようにデータを一時的に保存し、指定された期間が過ぎると自動的に削除されます。

シンタックス

set_transient( string $transient, mixed $value, int $expiration );

引数の説明:

  • $transient (string) — 保存するデータの名前。
  • $value (mixed) — 保存するデータ。文字列、配列、オブジェクトなど、任意のデータタイプを使用できます。
  • $expiration (int) — キャッシュの有効期限(秒単位)。この期間が過ぎるとデータは削除されます。

例1: 単純な一時的データの保存

次のコードは、データを30分間保存します。

set_transient( 'example_transient', 'このデータは30分後に削除されます', 30 * 60 );

例2: 配列データを保存

配列を保存する例です。指定した期間内にデータが利用可能です。

$data = array( 'foo' => 'bar', 'baz' => 'qux' );
set_transient( 'array_transient', $data, 60 * 60 );

例3: 期限切れのデータにアクセス

次のコードは、一時的に保存されたデータを取得します。データが期限切れの場合は、falseが返されます。

$transient_data = get_transient( 'example_transient' );
if ( false === $transient_data ) {
    echo 'データは期限切れです。';
} else {
    echo $transient_data;
}

例4: 一時的なオブジェクトデータの保存

オブジェクトを一時的に保存する例です。オブジェクトが期限内に利用可能です。

$obj = new stdClass();
$obj->name = '例のオブジェクト';
set_transient( 'object_transient', $obj, 60 * 60 * 24 );

例5: データが保存されていない場合の処理

データが保存されていない場合に処理を行う例です。データが期限切れまたは存在しない場合に新しいデータを設定します。

$transient_data = get_transient( 'example_transient' );
if ( false === $transient_data ) {
    set_transient( 'example_transient', '新しいデータ', 60 * 60 );
    echo 'データが更新されました。';
} else {
    echo $transient_data;
}

注意点:

  • set_transient()は、データが期限切れになると自動的に削除されますが、削除されない場合もあります。例えば、メモリが不足している場合などです。
  • 保存するデータの量が大きい場合、キャッシュストレージに負荷をかける可能性があるため、データのサイズに注意してください。
  • get_transient()を使用してデータを取得する場合、キャッシュが存在しない場合や期限切れの場合はfalseが返されるため、その処理を考慮する必要があります。

関連機能: