134 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			134 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /**
 | |
|  * Feed API: WP_Feed_Cache_Transient class
 | |
|  *
 | |
|  * @package WordPress
 | |
|  * @subpackage Feed
 | |
|  * @since 4.7.0
 | |
|  */
 | |
| 
 | |
| /**
 | |
|  * Core class used to implement feed cache transients.
 | |
|  *
 | |
|  * @since 2.8.0
 | |
|  */
 | |
| #[AllowDynamicProperties]
 | |
| class WP_Feed_Cache_Transient {
 | |
| 
 | |
| 	/**
 | |
| 	 * 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;
 | |
| 
 | |
| 	/**
 | |
| 	 * Constructor.
 | |
| 	 *
 | |
| 	 * @since 2.8.0
 | |
| 	 * @since 3.2.0 Updated to use a PHP5 constructor.
 | |
| 	 *
 | |
| 	 * @param string $location  URL location (scheme is used to determine handler).
 | |
| 	 * @param string $filename  Unique identifier for cache object.
 | |
| 	 * @param string $extension 'spi' or 'spc'.
 | |
| 	 */
 | |
| 	public function __construct( $location, $filename, $extension ) {
 | |
| 		$this->name     = 'feed_' . $filename;
 | |
| 		$this->mod_name = 'feed_mod_' . $filename;
 | |
| 
 | |
| 		$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 $filename Unique identifier for the cache object.
 | |
| 		 */
 | |
| 		$this->lifetime = apply_filters( 'wp_feed_cache_transient_lifetime', $lifetime, $filename );
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * Sets the transient.
 | |
| 	 *
 | |
| 	 * @since 2.8.0
 | |
| 	 *
 | |
| 	 * @param SimplePie $data Data to save.
 | |
| 	 * @return true Always true.
 | |
| 	 */
 | |
| 	public function save( $data ) {
 | |
| 		if ( $data instanceof SimplePie ) {
 | |
| 			$data = $data->data;
 | |
| 		}
 | |
| 
 | |
| 		set_transient( $this->name, $data, $this->lifetime );
 | |
| 		set_transient( $this->mod_name, time(), $this->lifetime );
 | |
| 		return true;
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * Gets the transient.
 | |
| 	 *
 | |
| 	 * @since 2.8.0
 | |
| 	 *
 | |
| 	 * @return mixed Transient value.
 | |
| 	 */
 | |
| 	public function load() {
 | |
| 		return get_transient( $this->name );
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * Gets mod transient.
 | |
| 	 *
 | |
| 	 * @since 2.8.0
 | |
| 	 *
 | |
| 	 * @return mixed Transient value.
 | |
| 	 */
 | |
| 	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;
 | |
| 	}
 | |
| }
 |