WordPress.org

Make WordPress Core

Ticket #20021: wp-load-alloptions.patch

File wp-load-alloptions.patch, 2.5 KB (added by gcorne, 4 years ago)
  • option.php

     
    135135function wp_load_alloptions() { 
    136136        global $wpdb; 
    137137 
    138         if ( !defined( 'WP_INSTALLING' ) || !is_multisite() ) 
    139                 $alloptions = wp_cache_get( 'alloptions', 'options' ); 
    140         else 
     138        if ( !defined( 'WP_INSTALLING' ) ) { 
     139                if( is_multisite() ) { 
     140                                $alloptions = wp_cache_get( $wpdb->blogid . 'alloptions', 'site-options' ); 
     141                } else { 
     142                                $alloptions = wp_cache_get( 'alloptions', 'options' ); 
     143                } 
     144        } else { 
    141145                $alloptions = false; 
     146        } 
    142147 
    143148        if ( !$alloptions ) { 
    144149                $suppress = $wpdb->suppress_errors(); 
     
    149154                foreach ( (array) $alloptions_db as $o ) { 
    150155                        $alloptions[$o->option_name] = $o->option_value; 
    151156                } 
    152                 if ( !defined( 'WP_INSTALLING' ) || !is_multisite() ) 
    153                         wp_cache_add( 'alloptions', $alloptions, 'options' ); 
     157                if ( !defined( 'WP_INSTALLING' ) ) { 
     158                        if( is_multisite() ) { 
     159                                        wp_cache_add( $wpdb->blogid . 'alloptions', $alloptions, 'site-options' ); 
     160                        } else { 
     161                                        wp_cache_add( 'alloptions', $alloptions, 'options' ); 
     162                        } 
     163                 
     164                } 
    154165        } 
    155166 
    156167        return $alloptions; 
     
    249260                $alloptions = wp_load_alloptions(); 
    250261                if ( isset( $alloptions[$option] ) ) { 
    251262                        $alloptions[$option] = $_newvalue; 
    252                         wp_cache_set( 'alloptions', $alloptions, 'options' ); 
     263                        if ( is_multisite() ) { 
     264                                wp_cache_set( $wpdb->blogid . 'alloptions', $alloptions, 'site-options' ); 
     265                        } else { 
     266                                wp_cache_set( 'alloptions', $alloptions, 'options' ); 
     267                        } 
    253268                } else { 
    254269                        wp_cache_set( $option, $_newvalue, 'options' ); 
    255270                } 
     
    321336                if ( 'yes' == $autoload ) { 
    322337                        $alloptions = wp_load_alloptions(); 
    323338                        $alloptions[$option] = $value; 
    324                         wp_cache_set( 'alloptions', $alloptions, 'options' ); 
     339                        if ( is_multisite() ) { 
     340                                wp_cache_set( $wpdb->blogid . 'alloptions', $alloptions, 'site-options' ); 
     341                        } else { 
     342                                wp_cache_set( 'alloptions', $alloptions, 'options' ); 
     343                        } 
    325344                } else { 
    326345                        wp_cache_set( $option, $value, 'options' ); 
    327346                } 
     
    373392                        $alloptions = wp_load_alloptions(); 
    374393                        if ( is_array( $alloptions ) && isset( $alloptions[$option] ) ) { 
    375394                                unset( $alloptions[$option] ); 
    376                                 wp_cache_set( 'alloptions', $alloptions, 'options' ); 
     395                                if ( is_multisite() ) { 
     396                                        wp_cache_set( $wpdb->blogid . 'alloptions', $alloptions, 'site-options' ); 
     397                                } else { 
     398                                        wp_cache_set( 'alloptions', $alloptions, 'options' ); 
     399                                } 
    377400                        } 
    378401                } else { 
    379402                        wp_cache_delete( $option, 'options' );