set_transient() – Sets/updates the value of a transient.

You appear to be a bot. Output may be restricted

Description

Sets/updates the value of a transient.

You do not need to serialize values. If the value needs to be serialized, then it will be serialized before it is set.

Usage

$bool = set_transient( $transient, $value, $expiration );

Parameters

$transient
( string ) required – Transient name. Expected to not be SQL-escaped. Must be 172 characters or fewer in length.
$value
( mixed ) required – Transient value. Must be serializable if non-scalar. Expected to not be SQL-escaped.
$expiration
( int ) optional – Optional. Time until expiration in seconds. Default 0 (no expiration).

Returns

bool True if the value was set, false otherwise.

Source

File name: wordpress/wp-includes/option.php
Lines:

1 to 99 of 99
function set_transient( $transient, $value, $expiration = 0 ) {

  $expiration = (int) $expiration;

  
/**
 * Filters a specific transient before its value is set.
 *
 * The dynamic portion of the hook name, `$transient`, refers to the transient name.
 *
 * @since 3.0.0
 * @since 4.2.0 The `$expiration` parameter was added.
 * @since 4.4.0 The `$transient` parameter was added.
 *
 * @param mixed  $value      New value of transient.
 * @param int    $expiration Time until expiration in seconds.
 * @param string $transient  Transient name.
 */
  $value = apply_filters( "pre_set_transient_{$transient}", $value, $expiration, $transient );

  
/**
 * Filters the expiration for a transient before its value is set.
 *
 * The dynamic portion of the hook name, `$transient`, refers to the transient name.
 *
 * @since 4.4.0
 *
 * @param int    $expiration Time until expiration in seconds. Use 0 for no expiration.
 * @param mixed  $value      New value of transient.
 * @param string $transient  Transient name.
 */
  $expiration = apply_filters( "expiration_of_transient_{$transient}", $expiration, $value, $transient );

  if ( wp_using_ext_object_cache() || wp_installing() ) {
    $result = wp_cache_set( $transient, $value, 'transient', $expiration );
  } else {
    $transient_timeout = '_transient_timeout_' . $transient;
    $transient_option  = '_transient_' . $transient;

    if ( false === get_option( $transient_option ) ) {
      $autoload = 'yes';
      if ( $expiration ) {
        $autoload = 'no';
        add_option( $transient_timeout, time() + $expiration, '', 'no' );
      }
      $result = add_option( $transient_option, $value, '', $autoload );
    } else {
      // If expiration is requested, but the transient has no timeout option,
      // delete, then re-create transient rather than update.
      $update = true;

      if ( $expiration ) {
        if ( false === get_option( $transient_timeout ) ) {
          delete_option( $transient_option );
          add_option( $transient_timeout, time() + $expiration, '', 'no' );
          $result = add_option( $transient_option, $value, '', 'no' );
          $update = false;
        } else {
          update_option( $transient_timeout, time() + $expiration );
        }
      }

      if ( $update ) {
        $result = update_option( $transient_option, $value );
      }
    }
  }

  if ( $result ) {

    
/**
 * Fires after the value for a specific transient has been set.
 *
 * The dynamic portion of the hook name, `$transient`, refers to the transient name.
 *
 * @since 3.0.0
 * @since 3.6.0 The `$value` and `$expiration` parameters were added.
 * @since 4.4.0 The `$transient` parameter was added.
 *
 * @param mixed  $value      Transient value.
 * @param int    $expiration Time until expiration in seconds.
 * @param string $transient  The name of the transient.
 */
    do_action( "set_transient_{$transient}", $value, $expiration, $transient );

    
/**
 * Fires after the value for a transient has been set.
 *
 * @since 3.0.0
 * @since 3.6.0 The `$value` and `$expiration` parameters were added.
 *
 * @param string $transient  The name of the transient.
 * @param mixed  $value      Transient value.
 * @param int    $expiration Time until expiration in seconds.
 */
    do_action( 'setted_transient', $transient, $value, $expiration );
  }

  return $result;
}
 

 View on GitHub View on Trac