Make WordPress Core


Ignore:
Timestamp:
07/30/2025 11:01:58 PM (13 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.