Tribe__Cache::get_chunkable_transient( string $id, string|array $expiration_trigger = '' )

Returns a transient that might have been stored, due ot its size, in chunks.


Parameters

$id

(string) (Required) The name of the transients to return.

$expiration_trigger

(string|<span class="array">array) (Optional) The transient expiration trigger(s).

Default value: ''


Top ↑

Return

(false|mixed) Either the transient value, joined back into one, or false to indicate the transient was not found or was malformed.


Top ↑

Source

File: src/Tribe/Cache.php

	public function get_chunkable_transient( $id, $expiration_trigger = '' ) {
		$transient = $this->get_id( $id, $expiration_trigger );

		if ( wp_using_ext_object_cache() ) {
			return get_transient( $transient );
		}

		$chunks = [];
		$i      = 0;
		do {
			$chunk_transient            = $transient . '_' . $i++;
			$chunk                      = get_transient( $chunk_transient );
			$chunks[ $chunk_transient ] = (string) $chunk;
		} while ( ! empty( $chunk ) );

		// Remove any piece of data that was added but is not relevant.
		$chunks = array_filter( $chunks );

		if ( empty( $chunks ) ) {
			return false;
		}

		try {
			$data          = implode( '', $chunks );
			$is_serialized = preg_match( '/^[aO]:\\d+:/', $data );
			$unserialized  = maybe_unserialize( implode( '', $chunks ) );

			if ( is_string( $unserialized ) && $unserialized === $data && $is_serialized ) {
				// Something was messed up.
				return false;
			}

			return $unserialized;
		} catch ( Exception $e ) {
			return false;
		}
	}

Top ↑

Changelog

Changelog
Version Description
4.13.3 Introduced.