Make WordPress Core


Ignore:
Timestamp:
07/22/2022 08:50:31 PM (2 years ago)
Author:
spacedmonkey
Message:

Cache API: Add wp_cache_flush_group function.

Add a new plugable function called wp_cache_flush_group, that will allow developers to clear whole cache groups with a single call. Developers can detect if their current implementation of an object cache supports flushing by group, by calling wp_cache_supports_group_flush which returns true if it is supported. If the developers of the object cache drop-in has not implemented wp_cache_flush_group and wp_cache_supports_group_flush, these functions are polyfilled and wp_cache_supports_group_flush defaults to false.

Props Spacedmonkey, filosofo, ryan, sc0ttkclark, SergeyBiryukov, scribu, Ste_95, dd32, dhilditch, dougal, lucasbustamante, dg12345, tillkruess, peterwilsoncc, flixos90, pbearne.
Fixes #4476.

File:
1 edited

Legend:

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

    r53206 r53763  
    2121function wp_cache_init() {
    2222    $GLOBALS['wp_object_cache'] = new WP_Object_Cache();
     23}
     24
     25/**
     26 * Whether the object cache implementation supports flushing individual cache groups.
     27 *
     28 * @since 6.1.0
     29 *
     30 * @see WP_Object_Cache::flush_group()
     31 *
     32 * @return bool True if group flushing is supported, false otherwise.
     33 */
     34function wp_cache_supports_group_flush() {
     35    return true;
    2336}
    2437
     
    283296
    284297/**
     298 * Removes all cache items in a group, if the object cache implementation supports it.
     299 * Before calling this method, always check for group flushing support using the
     300 * `wp_cache_supports_group_flush()` method.
     301 *
     302 * @since 6.1.0
     303 *
     304 * @see WP_Object_Cache::flush_group()
     305 * @global WP_Object_Cache $wp_object_cache Object cache global instance.
     306 *
     307 * @param string $group Name of group to remove from cache.
     308 * @return bool True if group was flushed, false otherwise.
     309 */
     310function wp_cache_flush_group( $group ) {
     311    global $wp_object_cache;
     312
     313    return $wp_object_cache->flush_group( $group );
     314}
     315
     316/**
    285317 * Closes the cache.
    286318 *
Note: See TracChangeset for help on using the changeset viewer.