WordPress.org

Make WordPress Core

Ticket #10954: 10954-3.patch

File 10954-3.patch, 1.2 KB (added by azaozz, 9 years ago)
  • wp-includes/widgets.php

     
    126126
    127127        function _register() {
    128128                $settings = $this->get_settings();
     129                $empty = true;
    129130
    130                 if ( empty($settings) ) {
    131                         // If there are none, we register the widget's existance with a
    132                         // generic template
    133                         $this->_set(1);
    134                         $this->_register_one();
    135                 } elseif ( is_array($settings) ) {
     131                if ( is_array($settings) ) {
    136132                        foreach ( array_keys($settings) as $number ) {
    137133                                if ( is_numeric($number) ) {
    138134                                        $this->_set($number);
    139135                                        $this->_register_one($number);
     136                                        $empty = false;
    140137                                }
    141138                        }
    142139                }
     140
     141                if ( $empty ) {
     142                        // If there are none, we register the widget's existance with a
     143                        // generic template
     144                        $this->_set(1);
     145                        $this->_register_one();
     146                }
    143147        }
    144148
    145149        function _set($number) {
     
    236240                        }
    237241                }
    238242
     243                // housekeeping
     244                foreach ( array_keys($all_instances) as $val ) {
     245                        if ( !is_numeric($val) )
     246                                unset($all_instances[$val]);
     247                               
     248                }
     249
    239250                $this->save_settings($all_instances);
    240251                $this->updated = true;
    241252        }