Make WordPress Core

Ticket #21989: no-double-handling.patch

File no-double-handling.patch, 1.0 KB (added by lev0, 19 months ago)
  • wp-includes/option.php

    a b  
    461461                $value = clone $value;
    462462        }
    463463
    464         $value     = sanitize_option( $option, $value );
    465464        $old_value = get_option( $option );
    466465
     466        $notoptions = wp_cache_get( 'notoptions', 'options' );
     467
     468        if ( is_array( $notoptions ) && isset( $notoptions[ $option ] ) ) {
     469                // Default setting for new options is 'yes'.
     470                if ( null === $autoload ) {
     471                        $autoload = 'yes';
     472                }
     473
     474                return add_option( $option, $value, '', $autoload );
     475        }
     476
     477        $value = sanitize_option( $option, $value );
     478
    467479        /**
    468480         * Filters a specific option before its value is (maybe) serialized and updated.
    469481         *
     
    502513                return false;
    503514        }
    504515
    505         /** This filter is documented in wp-includes/option.php */
    506         if ( apply_filters( "default_option_{$option}", false, $option, false ) === $old_value ) {
    507                 // Default setting for new options is 'yes'.
    508                 if ( null === $autoload ) {
    509                         $autoload = 'yes';
    510                 }
    511 
    512                 return add_option( $option, $value, '', $autoload );
    513         }
    514 
    515516        $serialized_value = maybe_serialize( $value );
    516517
    517518        /**