wp-includes/option.php:694Primes specific network options into the cache with a single database query.
$network_idint|null$optionsstring[]function wp_prime_network_option_caches( $network_id, array $options ) { global $wpdb; if ( wp_installing() ) { return; } if ( ! is_multisite() ) { wp_prime_option_caches( $options ); return; } if ( $network_id && ! is_numeric( $network_id ) ) { return; } $network_id = (int) $network_id; // Fallback to the current network if a network ID is not specified. if ( ! $network_id ) { $network_id = get_current_network_id(); } $cache_keys = array(); foreach ( $options as $option ) { $cache_keys[ $option ] = "{$network_id}:{$option}"; } $cache_group = 'site-options'; $cached_options = wp_cache_get_multiple( array_values( $cache_keys ), $cache_group ); $notoptions_key = "$network_id:notoptions"; $notoptions = wp_cache_get( $notoptions_key, $cache_group ); if ( ! is_array( $notoptions ) ) { $notoptions = array(); } // Filter options that are not in the cache. $options_to_prime = array(); foreach ( $cache_keys as $option => $cache_key ) { if ( ( ! isset( $cached_options[ $cache_key ] ) || false === $cached_options[ $cache_key ] ) && ! isset( $notoptions[ $option ] ) ) { $options_to_prime[] = $option; } } // Bail early if there are no options to be loaded. if ( empty( $options_to_prime ) ) { return; } $query_args = $options_to_prime; $query_args[] = $network_id; $results = $wpdb->get_results( $wpdb->prepare( sprintf( "SELECT meta_key, meta_value FROM $wpdb->sitemeta WHERE meta_key IN (%s) AND site_id = %s", implode( ',', array_fill( 0, count( $options_to_prime ), '%s' ) ), '%d' ), $query_args ) ); $data = array(); $options_found = array(); foreach ( $results as $result ) { $key = $result->meta_key; $cache_key = $cache_keys[ $key ]; $data[ $cache_key ] = maybe_unserialize( $result->meta_value ); $options_found[] = $key; } wp_cache_set_multiple( $data, $cache_group ); // If all options were found, no need to update `notoptions` cache. if ( count( $options_found ) === count( $options_to_prime ) ) { return; }Introduced in 6.6.0. One change between 6.7.7 and 7.1.0.
Signature, return type and hooks compared across 5 parsed releases.
$network_id retyped from int to int|null.verified against sourcesrc/wp-includes/option.php, and regenerated for each WordPress release so it tracks the code rather than a snapshot of it.