WordPress.org

Make WordPress Core

Ticket #25883: 25883.diff

File 25883.diff, 2.7 KB (added by wonderboymusic, 8 years ago)
  • src/wp-includes/option.php

     
    757757                return $pre;
    758758
    759759        // prevent non-existent options from triggering multiple queries
    760         $notoptions = wp_cache_get( 'notoptions', 'site-options' );
     760        $notoptions_key = "{$wpdb->siteid}:notoptions";
     761        $notoptions = wp_cache_get( $notoptions_key, 'site-options' );
    761762        if ( isset( $notoptions[$option] ) )
    762763                return apply_filters( 'default_site_option_' . $option, $default );
    763764
     
    779780                                wp_cache_set( $cache_key, $value, 'site-options' );
    780781                        } else {
    781782                                $notoptions[$option] = true;
    782                                 wp_cache_set( 'notoptions', $notoptions, 'site-options' );
     783                                wp_cache_set( $notoptions_key, $notoptions, 'site-options' );
    783784                                $value = apply_filters( 'default_site_option_' . $option, $default );
    784785                        }
    785786                }
     
    812813        wp_protect_special_option( $option );
    813814
    814815        $value = apply_filters( 'pre_add_site_option_' . $option, $value );
     816        $notoptions_key = "{$wpdb->siteid}:notoptions";
    815817
    816818        if ( !is_multisite() ) {
    817819                $result = add_option( $option, $value );
     
    819821                $cache_key = "{$wpdb->siteid}:$option";
    820822
    821823                // Make sure the option doesn't already exist. We can check the 'notoptions' cache before we ask for a db query
    822                 $notoptions = wp_cache_get( 'notoptions', 'site-options' );
     824                $notoptions = wp_cache_get( $notoptions_key, 'site-options' );
    823825                if ( ! is_array( $notoptions ) || ! isset( $notoptions[$option] ) )
    824826                        if ( false !== get_site_option( $option ) )
    825827                                return false;
     
    835837                wp_cache_set( $cache_key, $value, 'site-options' );
    836838
    837839                // This option exists now
    838                 $notoptions = wp_cache_get( 'notoptions', 'site-options' ); // yes, again... we need it to be fresh
     840                $notoptions = wp_cache_get( $notoptions_key, 'site-options' ); // yes, again... we need it to be fresh
    839841                if ( is_array( $notoptions ) && isset( $notoptions[$option] ) ) {
    840842                        unset( $notoptions[$option] );
    841                         wp_cache_set( 'notoptions', $notoptions, 'site-options' );
     843                        wp_cache_set( $notoptions_key, $notoptions, 'site-options' );
    842844                }
    843845        }
    844846
     
    922924        if ( false === $old_value )
    923925                return add_site_option( $option, $value );
    924926
    925         $notoptions = wp_cache_get( 'notoptions', 'site-options' );
     927        $notoptions_key = "{$wpdb->siteid}:notoptions";
     928        $notoptions = wp_cache_get( $notoptions_key, 'site-options' );
    926929        if ( is_array( $notoptions ) && isset( $notoptions[$option] ) ) {
    927930                unset( $notoptions[$option] );
    928                 wp_cache_set( 'notoptions', $notoptions, 'site-options' );
     931                wp_cache_set( $notoptions_key, $notoptions, 'site-options' );
    929932        }
    930933
    931934        if ( !is_multisite() ) {