You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
132 lines
2.5 KiB
132 lines
2.5 KiB
<?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 |
|
*/ |
|
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; |
|
} |
|
}
|
|
|