Make WordPress Core

Ticket #26876: 26876.3.diff

File 26876.3.diff, 1.8 KB (added by wonderboymusic, 11 years ago)
  • src/wp-includes/class-wp-widget.php

     
    522522
    523523                $settings = get_option( $this->option_name );
    524524
    525                 if ( false === $settings && isset( $this->alt_option_name ) ) {
    526                         $settings = get_option( $this->alt_option_name );
     525                if ( false === $settings ) {
     526                        if ( isset( $this->alt_option_name ) ) {
     527                                $settings = get_option( $this->alt_option_name );
     528                        } else {
     529                                // Save an option so it can be autoloaded next time.
     530                                $this->save_settings( array() );
     531                        }
    527532                }
    528533
    529534                if ( ! is_array( $settings ) && ! ( $settings instanceof ArrayObject || $settings instanceof ArrayIterator ) ) {
  • tests/phpunit/tests/widgets.php

     
    233233                $this->assertArrayHasKey( 'title', $instance );
    234234                unset( $option_value['_multiwidget'] );
    235235
     236                // Pretend this widget is new.
     237                delete_option( 'widget_nav_menu' );
     238                $never_used = get_option( 'widget_nav_menu' );
     239                $this->assertFalse( $never_used );
     240
    236241                wp_widgets_init();
    237242                $wp_widget_search = $wp_registered_widgets['search-2']['callback'][0];
    238243
     
    243248                foreach ( $option_value as $widget_number => $instance ) {
    244249                        $this->assertEquals( $settings[ $widget_number ], $option_value[ $widget_number ] );
    245250                }
     251
     252                // After widgets_init(), get_settings() should create the widget option.
     253                $never_used = get_option( 'widget_nav_menu' );
     254                $this->assertEquals( 1, $never_used['_multiwidget'] );
     255                $this->assertArrayNotHasKey( 0, $never_used );
    246256        }
    247257
    248258        /**