Multisite: Ensure the {$network_id}:notoptions array is set in cache in get_network_option().

Prior to this change, the `{$network_id}:notoptions` cache would only be fetched, but not set, unless the actual database lookup would be unsuccessful. This enhancement slightly improves performance by preventing unnecessary external object cache lookups if one is used.

Fixes #43506.


git-svn-id: https://develop.svn.wordpress.org/trunk@42833 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Felix Arntz
2018-03-13 15:36:14 +00:00
parent 5f56921131
commit 52a77e5254
2 changed files with 52 additions and 1 deletions

View File

@@ -1247,7 +1247,7 @@ function get_network_option( $network_id, $option, $default = false ) {
$notoptions_key = "$network_id:notoptions";
$notoptions = wp_cache_get( $notoptions_key, 'site-options' );
if ( isset( $notoptions[ $option ] ) ) {
if ( is_array( $notoptions ) && isset( $notoptions[ $option ] ) ) {
/**
* Filters a specific default network option.
@@ -1295,6 +1295,11 @@ function get_network_option( $network_id, $option, $default = false ) {
}
}
if ( ! is_array( $notoptions ) ) {
$notoptions = array();
wp_cache_set( $notoptions_key, $notoptions, 'site-options' );
}
/**
* Filters the value of an existing network option.
*