WordPress.org

Make WordPress Core

Ticket #12140: functions.diff

File functions.diff, 4.2 KB (added by donncha, 8 years ago)
  • wp-includes/functions.php

     
    333333        if ( isset( $notoptions[$setting] ) )
    334334                return $default;
    335335
    336         $alloptions = wp_load_alloptions();
     336        if ( ! defined( 'WP_INSTALLING' ) ) {
     337                $alloptions = wp_load_alloptions();
     338        }
    337339
    338340        if ( isset( $alloptions[$setting] ) ) {
    339341                $value = $alloptions[$setting];
     
    527529        $newvalue = maybe_serialize( $newvalue );
    528530
    529531        do_action( 'update_option', $option_name, $oldvalue, $newvalue );
    530         $alloptions = wp_load_alloptions();
    531         if ( isset( $alloptions[$option_name] ) ) {
    532                 $alloptions[$option_name] = $newvalue;
    533                 wp_cache_set( 'alloptions', $alloptions, 'options' );
    534         } else {
    535                 wp_cache_set( $option_name, $newvalue, 'options' );
     532        if ( ! defined( 'WP_INSTALLING' ) ) {
     533                $alloptions = wp_load_alloptions();
     534                if ( isset( $alloptions[$option_name] ) ) {
     535                        $alloptions[$option_name] = $newvalue;
     536                        wp_cache_set( 'alloptions', $alloptions, 'options' );
     537                } else {
     538                        wp_cache_set( $option_name, $newvalue, 'options' );
     539                }
    536540        }
    537541
    538542        $wpdb->update($wpdb->options, array('option_value' => $newvalue), array('option_name' => $option_name) );
     
    589593        $value = maybe_serialize( $value );
    590594        $autoload = ( 'no' === $autoload ) ? 'no' : 'yes';
    591595        do_action( 'add_option', $name, $value );
    592         if ( 'yes' == $autoload ) {
    593                 $alloptions = wp_load_alloptions();
    594                 $alloptions[$name] = $value;
    595                 wp_cache_set( 'alloptions', $alloptions, 'options' );
    596         } else {
    597                 wp_cache_set( $name, $value, 'options' );
     596        if ( ! defined( 'WP_INSTALLING' ) ) {
     597                if ( 'yes' == $autoload ) {
     598                        $alloptions = wp_load_alloptions();
     599                        $alloptions[$name] = $value;
     600                        wp_cache_set( 'alloptions', $alloptions, 'options' );
     601                } else {
     602                        wp_cache_set( $name, $value, 'options' );
     603                }
    598604        }
    599605
    600606        // This option exists now
     
    635641        do_action( 'delete_option', $name );
    636642        // expected_slashed ($name)
    637643        $wpdb->query( "DELETE FROM $wpdb->options WHERE option_name = '$name'" );
    638         if ( 'yes' == $option->autoload ) {
    639                 $alloptions = wp_load_alloptions();
    640                 if ( isset( $alloptions[$name] ) ) {
    641                         unset( $alloptions[$name] );
    642                         wp_cache_set( 'alloptions', $alloptions, 'options' );
     644        if ( ! defined( 'WP_INSTALLING' ) ) {
     645                if ( 'yes' == $option->autoload ) {
     646                        $alloptions = wp_load_alloptions();
     647                        if ( isset( $alloptions[$name] ) ) {
     648                                unset( $alloptions[$name] );
     649                                wp_cache_set( 'alloptions', $alloptions, 'options' );
     650                        }
     651                } else {
     652                        wp_cache_delete( $name, 'options' );
    643653                }
    644         } else {
    645                 wp_cache_delete( $name, 'options' );
    646654        }
    647655        do_action( 'deleted_option', $name );
    648656        return true;
     
    694702        if ( $_wp_using_ext_object_cache ) {
    695703                $value = wp_cache_get($transient, 'transient');
    696704        } else {
    697                 $transient_option = '_transient_' . esc_sql($transient);
    698                 // If option is not in alloptions, it is not autoloaded and thus has a timeout
    699                 $alloptions = wp_load_alloptions();
    700                 if ( !isset( $alloptions[$transient_option] ) ) {
    701                         $transient_timeout = '_transient_timeout_' . esc_sql($transient);
    702                         if ( get_option($transient_timeout) < time() ) {
    703                                 delete_option($transient_option);
    704                                 delete_option($transient_timeout);
    705                                 return false;
     705                if ( ! defined( 'WP_INSTALLING' ) ) {
     706                        $transient_option = '_transient_' . esc_sql($transient);
     707                        // If option is not in alloptions, it is not autoloaded and thus has a timeout
     708                        $alloptions = wp_load_alloptions();
     709                        if ( !isset( $alloptions[$transient_option] ) ) {
     710                                $transient_timeout = '_transient_timeout_' . esc_sql($transient);
     711                                if ( get_option($transient_timeout) < time() ) {
     712                                        delete_option($transient_option);
     713                                        delete_option($transient_timeout);
     714                                        return false;
     715                                }
    706716                        }
    707717                }
    708718
     
    17501760                return true;
    17511761
    17521762        $suppress = $wpdb->suppress_errors();
    1753         $alloptions = wp_load_alloptions();
     1763        if ( ! defined( 'WP_INSTALLING' ) ) {
     1764                $alloptions = wp_load_alloptions();
     1765        }
    17541766        // If siteurl is not set to autoload, check it specifically
    17551767        if ( !isset( $alloptions['siteurl'] ) )
    17561768                $installed = $wpdb->get_var( "SELECT option_value FROM $wpdb->options WHERE option_name = 'siteurl'" );