set_site_transient()WP 2.9.0

Sets or updates temporary data for a multisite network.

Designed for use in multisite mode, when data needs to be saved for the entire network of sites, rather than for an individual site. If multisite is enabled, the data will be saved in the wp_sitemeta table, and not in wp_options; if not (standard installation), it works just like set_transient(), only the key prefix will be _site_transient_ instead of _transient_.

Differs from set_transient() in that when saving to the database it uses the prefix _site_transient_ instead of _transient_, and also uses the functions get_site_option(), update_site_option(), ..., rather than get_option(), update_option(), ....

If persistent object caching is enabled, see wp_using_ext_object_cache(), control is passed to wp_cache_set().

DO NOT serialize the value being saved (if it needs serialization), it will be serialized automatically.

Returns

true|false.

  • true - when the specified value is set (saved).
  • false - when the specified value could not be set (saved).

Usage

set_site_transient( $transient, $value, $expiration );
$transient(string) (required)
Key. No need to escape for SQL. Must be shorter than 167 characters.
$value(mixed) (required)
Transient value. No need to escape for SQL.
$expiration(number)
Time to live in seconds
Default: 0 (indefinitely)

Examples

Notes

Changelog

Since 2.9.0 Introduced.

set_site_transient() code WP 7.0

function set_site_transient( $transient, $value, $expiration = 0 ) {

	/**
	 * Filters the value of a specific site transient before it is set.
	 *
	 * The dynamic portion of the hook name, `$transient`, refers to the transient name.
	 *
	 * @since 3.0.0
	 * @since 4.4.0 The `$transient` parameter was added.
	 *
	 * @param mixed  $value     New value of site transient.
	 * @param string $transient Transient name.
	 */
	$value = apply_filters( "pre_set_site_transient_{$transient}", $value, $transient );

	$expiration = (int) $expiration;

	/**
	 * Filters the expiration for a site 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 site transient.
	 * @param string $transient  Transient name.
	 */
	$expiration = apply_filters( "expiration_of_site_transient_{$transient}", $expiration, $value, $transient );

	if ( wp_using_ext_object_cache() || wp_installing() ) {
		$result = wp_cache_set( $transient, $value, 'site-transient', $expiration );
	} else {
		$transient_timeout = '_site_transient_timeout_' . $transient;
		$option            = '_site_transient_' . $transient;
		wp_prime_site_option_caches( array( $option, $transient_timeout ) );

		if ( false === get_site_option( $option ) ) {
			if ( $expiration ) {
				add_site_option( $transient_timeout, time() + $expiration );
			}
			$result = add_site_option( $option, $value );
		} else {
			if ( $expiration ) {
				update_site_option( $transient_timeout, time() + $expiration );
			}
			$result = update_site_option( $option, $value );
		}
	}

	if ( $result ) {

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

		/**
		 * Fires after the value for a site transient has been set.
		 *
		 * @since 6.8.0
		 *
		 * @param string $transient  The name of the site transient.
		 * @param mixed  $value      Site transient value.
		 * @param int    $expiration Time until expiration in seconds.
		 */
		do_action( 'set_site_transient', $transient, $value, $expiration );

		/**
		 * Fires after the value for a site transient has been set.
		 *
		 * @since 3.0.0
		 * @deprecated 6.8.0 Use {@see 'set_site_transient'} instead.
		 *
		 * @param string $transient  The name of the site transient.
		 * @param mixed  $value      Site transient value.
		 * @param int    $expiration Time until expiration in seconds.
		 */
		do_action_deprecated( 'setted_site_transient', array( $transient, $value, $expiration ), '6.8.0', 'set_site_transient' );
	}

	return $result;
}