From a415c29efee45520ae252d2aa28f1083a521cd7b Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 17 Apr 2024 09:56:49 +0200 Subject: Adding upstream version 6.4.3+dfsg1. Signed-off-by: Daniel Baumann --- wp-includes/ms-network.php | 141 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 141 insertions(+) create mode 100644 wp-includes/ms-network.php (limited to 'wp-includes/ms-network.php') diff --git a/wp-includes/ms-network.php b/wp-includes/ms-network.php new file mode 100644 index 0000000..8ab8819 --- /dev/null +++ b/wp-includes/ms-network.php @@ -0,0 +1,141 @@ +query( $args ); +} + +/** + * Removes a network from the object cache. + * + * @since 4.6.0 + * + * @global bool $_wp_suspend_cache_invalidation + * + * @param int|array $ids Network ID or an array of network IDs to remove from cache. + */ +function clean_network_cache( $ids ) { + global $_wp_suspend_cache_invalidation; + + if ( ! empty( $_wp_suspend_cache_invalidation ) ) { + return; + } + + $network_ids = (array) $ids; + wp_cache_delete_multiple( $network_ids, 'networks' ); + + foreach ( $network_ids as $id ) { + /** + * Fires immediately after a network has been removed from the object cache. + * + * @since 4.6.0 + * + * @param int $id Network ID. + */ + do_action( 'clean_network_cache', $id ); + } + + wp_cache_set_last_changed( 'networks' ); +} + +/** + * Updates the network cache of given networks. + * + * Will add the networks in $networks to the cache. If network ID already exists + * in the network cache then it will not be updated. The network is added to the + * cache using the network group with the key using the ID of the networks. + * + * @since 4.6.0 + * + * @param array $networks Array of network row objects. + */ +function update_network_cache( $networks ) { + $data = array(); + foreach ( (array) $networks as $network ) { + $data[ $network->id ] = $network; + } + wp_cache_add_multiple( $data, 'networks' ); +} + +/** + * Adds any networks from the given IDs to the cache that do not already exist in cache. + * + * @since 4.6.0 + * @since 6.1.0 This function is no longer marked as "private". + * + * @see update_network_cache() + * @global wpdb $wpdb WordPress database abstraction object. + * + * @param array $network_ids Array of network IDs. + */ +function _prime_network_caches( $network_ids ) { + global $wpdb; + + $non_cached_ids = _get_non_cached_ids( $network_ids, 'networks' ); + if ( ! empty( $non_cached_ids ) ) { + $fresh_networks = $wpdb->get_results( sprintf( "SELECT $wpdb->site.* FROM $wpdb->site WHERE id IN (%s)", implode( ',', array_map( 'intval', $non_cached_ids ) ) ) ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared + + update_network_cache( $fresh_networks ); + } +} -- cgit v1.2.3