WordPress.org

Make WordPress Core

Ticket #10954: 10954-3.patch

File 10954-3.patch, 1.2 KB (added by azaozz, 4 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        }