WordPress.org

Make WordPress Core

Ticket #20021: wp-load-alloptions.patch

File wp-load-alloptions.patch, 2.5 KB (added by gcorne, 6 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' );