diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 07:56:49 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 07:56:49 +0000 |
commit | a415c29efee45520ae252d2aa28f1083a521cd7b (patch) | |
tree | f4ade4b6668ecc0765de7e1424f7c1427ad433ff /wp-includes/class-wp-feed-cache-transient.php | |
parent | Initial commit. (diff) | |
download | wordpress-a415c29efee45520ae252d2aa28f1083a521cd7b.tar.xz wordpress-a415c29efee45520ae252d2aa28f1083a521cd7b.zip |
Adding upstream version 6.4.3+dfsg1.upstream/6.4.3+dfsg1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'wp-includes/class-wp-feed-cache-transient.php')
-rw-r--r-- | wp-includes/class-wp-feed-cache-transient.php | 133 |
1 files changed, 133 insertions, 0 deletions
diff --git a/wp-includes/class-wp-feed-cache-transient.php b/wp-includes/class-wp-feed-cache-transient.php new file mode 100644 index 0000000..1d39932 --- /dev/null +++ b/wp-includes/class-wp-feed-cache-transient.php @@ -0,0 +1,133 @@ +<?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; + } +} |