Make WordPress Core


Ignore:
Timestamp:
07/30/2025 11:01:58 PM (10 months ago)
Author:
peterwilsoncc
Message:

Feeds: Cache RSS feeds in global transients.

Moves the caching of RSS feeds requested via fetch_feed() from single site transients (get|set|delete_transient()) to global transients (get|set|delete_site_transient()).

On multisite installs of WordPress, this replaces per site caching with the global multisite cache to allow a single cache to be shared between all sites. This reduces the amount of data stored in the database and improves performance of feeds when multiple sites are ingesting the same URL.

Props rollybueno, spacedmonkey, peterwilsoncc.
Fixes #63719.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/class-wp-feed-cache-transient.php

    r59141 r60524  
    1313 * @since 2.8.0
    1414 * @since 6.7.0 Now properly implements the SimplePie\Cache\Base interface.
     15 * @since 6.9.0 Switched to Multisite's global cache via the `*_site_transient()` functions.
    1516 */
    1617#[AllowDynamicProperties]
     
    8586        }
    8687
    87         set_transient( $this->name, $data, $this->lifetime );
    88         set_transient( $this->mod_name, time(), $this->lifetime );
     88        set_site_transient( $this->name, $data, $this->lifetime );
     89        set_site_transient( $this->mod_name, time(), $this->lifetime );
    8990        return true;
    9091    }
     
    9899     */
    99100    public function load() {
    100         return get_transient( $this->name );
     101        return get_site_transient( $this->name );
    101102    }
    102103
     
    109110     */
    110111    public function mtime() {
    111         return get_transient( $this->mod_name );
     112        return get_site_transient( $this->mod_name );
    112113    }
    113114
     
    120121     */
    121122    public function touch() {
    122         return set_transient( $this->mod_name, time(), $this->lifetime );
     123        return set_site_transient( $this->mod_name, time(), $this->lifetime );
    123124    }
    124125
     
    131132     */
    132133    public function unlink() {
    133         delete_transient( $this->name );
    134         delete_transient( $this->mod_name );
     134        delete_site_transient( $this->name );
     135        delete_site_transient( $this->mod_name );
    135136        return true;
    136137    }
Note: See TracChangeset for help on using the changeset viewer.