W3cubDocs

/WordPress

class WP_Feed_Cache_Transient {}

Core class used to implement feed cache transients.

Methods

Name Description
WP_Feed_Cache_Transient::__construct Creates a new (transient) cache object.
WP_Feed_Cache_Transient::load Retrieves the data saved in the transient.
WP_Feed_Cache_Transient::mtime Gets mod transient.
WP_Feed_Cache_Transient::save Saves data to the transient.
WP_Feed_Cache_Transient::touch Sets mod transient.
WP_Feed_Cache_Transient::unlink Deletes transients.

Source

class WP_Feed_Cache_Transient implements SimplePie\Cache\Base {

	/**
	 * Holds the transient name.
	 *
	 * @since 2.8.0
	 * @var string
	 */
	public $name;

	/**
	 * Holds the transient mod name.
	 *
	 * @since 2.8.0
	 * @var string
	 */
	public $mod_name;

	/**
	 * Holds the cache duration in seconds.
	 *
	 * Defaults to 43200 seconds (12 hours).
	 *
	 * @since 2.8.0
	 * @var int
	 */
	public $lifetime = 43200;

	/**
	 * Creates a new (transient) cache object.
	 *
	 * @since 2.8.0
	 * @since 3.2.0 Updated to use a PHP5 constructor.
	 * @since 6.7.0 Parameter names have been updated to be in line with the `SimplePie\Cache\Base` interface.
	 *
	 * @param string                           $location URL location (scheme is used to determine handler).
	 * @param string                           $name     Unique identifier for cache object.
	 * @param Base::TYPE_FEED|Base::TYPE_IMAGE $type     Either `TYPE_FEED` ('spc') for SimplePie data,
	 *                                                   or `TYPE_IMAGE` ('spi') for image data.
	 */
	public function __construct( $location, $name, $type ) {
		$this->name     = 'feed_' . $name;
		$this->mod_name = 'feed_mod_' . $name;

		$lifetime = $this->lifetime;
		/**
		 * Filters the transient lifetime of the feed cache.
		 *
		 * @since 2.8.0
		 *
		 * @param int    $lifetime Cache duration in seconds. Default is 43200 seconds (12 hours).
		 * @param string $name     Unique identifier for the cache object.
		 */
		$this->lifetime = apply_filters( 'wp_feed_cache_transient_lifetime', $lifetime, $name );
	}

	/**
	 * Saves data to the transient.
	 *
	 * @since 2.8.0
	 *
	 * @param array|SimplePie\SimplePie $data Data to save. If passed a SimplePie object,
	 *                                        only cache the `$data` property.
	 * @return true Always true.
	 */
	public function save( $data ) {
		if ( $data instanceof SimplePie\SimplePie ) {
			$data = $data->data;
		}

		set_transient( $this->name, $data, $this->lifetime );
		set_transient( $this->mod_name, time(), $this->lifetime );
		return true;
	}

	/**
	 * Retrieves the data saved in the transient.
	 *
	 * @since 2.8.0
	 *
	 * @return array Data for `SimplePie::$data`.
	 */
	public function load() {
		return get_transient( $this->name );
	}

	/**
	 * Gets mod transient.
	 *
	 * @since 2.8.0
	 *
	 * @return int Timestamp.
	 */
	public function mtime() {
		return get_transient( $this->mod_name );
	}

	/**
	 * Sets mod transient.
	 *
	 * @since 2.8.0
	 *
	 * @return bool False if value was not set and true if value was set.
	 */
	public function touch() {
		return set_transient( $this->mod_name, time(), $this->lifetime );
	}

	/**
	 * Deletes transients.
	 *
	 * @since 2.8.0
	 *
	 * @return true Always true.
	 */
	public function unlink() {
		delete_transient( $this->name );
		delete_transient( $this->mod_name );
		return true;
	}
}

Changelog

Version Description
6.7.0 Now properly implements the SimplePieCacheBase interface.
2.8.0 Introduced.

© 2003–2024 WordPress Foundation
Licensed under the GNU GPLv2+ License.
https://developer.wordpress.org/reference/classes/wp_feed_cache_transient