Ticket #16761: 16761.patch

File 16761.patch, 5.7 KB (added by mfields, 2 years ago)

Fixes notices in widgets.

  • wp-includes/default-widgets.php

     
    177177 
    178178        function widget( $args, $instance ) { 
    179179                extract($args); 
    180                 $title = apply_filters('widget_title', $instance['title'], $instance, $this->id_base); 
    181180 
     181                $title = ''; 
     182                if ( isset( $instance['title'] ) ) { 
     183                        $title = apply_filters( 'widget_title', $instance['title'], $instance, $this->id_base ); 
     184                } 
     185 
    182186                echo $before_widget; 
    183                 if ( $title ) 
     187                if ( ! empty( $title ) ) { 
    184188                        echo $before_title . $title . $after_title; 
     189                } 
    185190 
    186191                // Use current theme search form if it exists 
    187192                get_search_form(); 
     
    220225 
    221226        function widget( $args, $instance ) { 
    222227                extract($args); 
    223                 $c = $instance['count'] ? '1' : '0'; 
    224                 $d = $instance['dropdown'] ? '1' : '0'; 
     228                $c = ( isset( $instance['count'] ) && $instance['count'] ) ? '1' : '0'; 
     229                $d = ( isset( $instance['dropdown'] ) && $instance['dropdown'] ) ? '1' : '0'; 
    225230                $title = apply_filters('widget_title', empty($instance['title']) ? __('Archives') : $instance['title'], $instance, $this->id_base); 
    226231 
    227232                echo $before_widget; 
     
    375380 
    376381        function widget( $args, $instance ) { 
    377382                extract($args); 
    378                 $title = apply_filters( 'widget_title', empty($instance['title']) ? '' : $instance['title'], $instance, $this->id_base); 
    379                 $text = apply_filters( 'widget_text', $instance['text'], $instance ); 
     383                $title = ''; 
     384                if ( isset( $instance['title'] ) ) { 
     385                        $title = apply_filters( 'widget_title', $instance['title'], $instance, $this->id_base ); 
     386                } 
     387                $text = ''; 
     388                if ( isset( $instance['text'] ) ) { 
     389                        $text = apply_filters( 'widget_text', $instance['text'], $instance ); 
     390                } 
    380391                echo $before_widget; 
    381392                if ( !empty( $title ) ) { echo $before_title . $title . $after_title; } ?> 
    382                         <div class="textwidget"><?php echo $instance['filter'] ? wpautop($text) : $text; ?></div> 
     393                        <div class="textwidget"><?php 
     394                                if ( isset( $instance['filter'] ) && $instance['filter'] ) { 
     395                                        echo wpautop( $text ); 
     396                                } else { 
     397                                        echo $text; 
     398                                } 
     399                                ?></div> 
    383400                <?php 
    384401                echo $after_widget; 
    385402        } 
     
    426443                extract( $args ); 
    427444 
    428445                $title = apply_filters('widget_title', empty( $instance['title'] ) ? __( 'Categories' ) : $instance['title'], $instance, $this->id_base); 
    429                 $c = $instance['count'] ? '1' : '0'; 
    430                 $h = $instance['hierarchical'] ? '1' : '0'; 
    431                 $d = $instance['dropdown'] ? '1' : '0'; 
     446                $c = ( isset( $instance['count'] ) && $instance['count'] ) ? '1' : '0'; 
     447                $h = ( isset( $instance['hierarchical'] ) && $instance['hierarchical'] ) ? '1' : '0'; 
     448                $d = ( isset( $instance['dropdown'] ) && $instance['dropdown'] ) ? '1' : '0'; 
    432449 
    433450                echo $before_widget; 
    434451                if ( $title ) 
     
    525542                if ( !is_array($cache) ) 
    526543                        $cache = array(); 
    527544 
    528                 if ( isset($cache[$args['widget_id']]) ) { 
     545                if ( isset( $args['widget_id'] ) && isset( $cache[$args['widget_id']] ) ) { 
    529546                        echo $cache[$args['widget_id']]; 
    530547                        return; 
    531548                } 
     
    534551                extract($args); 
    535552 
    536553                $title = apply_filters('widget_title', empty($instance['title']) ? __('Recent Posts') : $instance['title'], $instance, $this->id_base); 
    537                 if ( ! $number = absint( $instance['number'] ) ) 
    538                         $number = 10; 
    539554 
     555                $number = 10; 
     556                if ( isset( $instance['number'] ) && 0 < absint( $instance['number'] ) ) { 
     557                        $number = absint( $instance['number'] ); 
     558                } 
     559 
    540560                $r = new WP_Query(array('posts_per_page' => $number, 'nopaging' => 0, 'post_status' => 'publish', 'ignore_sticky_posts' => true)); 
    541561                if ($r->have_posts()) : 
    542562?> 
     
    554574 
    555575                endif; 
    556576 
    557                 $cache[$args['widget_id']] = ob_get_flush(); 
    558                 wp_cache_set('widget_recent_posts', $cache, 'widget'); 
     577                if ( isset( $args['widget_id'] ) && isset( $cache[$args['widget_id']] ) ) { 
     578                        $cache[$args['widget_id']] = ob_get_flush(); 
     579                        wp_cache_set('widget_recent_posts', $cache, 'widget'); 
     580                } 
    559581        } 
    560582 
    561583        function update( $new_instance, $old_instance ) { 
     
    628650                if ( ! is_array( $cache ) ) 
    629651                        $cache = array(); 
    630652 
    631                 if ( isset( $cache[$args['widget_id']] ) ) { 
     653                if ( isset( $args['widget_id'] ) && isset( $cache[$args['widget_id']] ) ) { 
    632654                        echo $cache[$args['widget_id']]; 
    633655                        return; 
    634656                } 
     
    637659                $output = ''; 
    638660                $title = apply_filters('widget_title', empty($instance['title']) ? __('Recent Comments') : $instance['title']); 
    639661 
    640                 if ( ! $number = absint( $instance['number'] ) ) 
    641                         $number = 5; 
     662                $number = 5; 
     663                if ( isset( $instance['number'] ) && 0 < absint( $instance['number'] ) ) { 
     664                        $number = absint( $instance['number'] ); 
     665                } 
    642666 
    643667                $comments = get_comments( array( 'number' => $number, 'status' => 'approve' ) ); 
    644668                $output .= $before_widget; 
     
    655679                $output .= $after_widget; 
    656680 
    657681                echo $output; 
    658                 $cache[$args['widget_id']] = $output; 
    659                 wp_cache_set('widget_recent_comments', $cache, 'widget'); 
     682                if ( isset( $args['widget_id'] ) && isset( $cache[$args['widget_id']] ) ) { 
     683                        $cache[$args['widget_id']] = $output; 
     684                        wp_cache_set('widget_recent_comments', $cache, 'widget'); 
     685                } 
    660686        } 
    661687 
    662688        function update( $new_instance, $old_instance ) { 
     
    705731 
    706732                extract($args, EXTR_SKIP); 
    707733 
    708                 $url = $instance['url']; 
    709                 while ( stristr($url, 'http') != $url ) 
    710                         $url = substr($url, 1); 
    711  
     734                $url = ''; 
     735                if ( isset( $instance['url'] ) ) { 
     736                        while ( stristr( $url, 'http' ) != $url ) 
     737                                $url = substr( $url, 1 ); 
     738                } 
     739                 
    712740                if ( empty($url) ) 
    713741                        return; 
    714742 
     
    10591087 
    10601088        function widget($args, $instance) { 
    10611089                // Get menu 
    1062                 $nav_menu = wp_get_nav_menu_object( $instance['nav_menu'] ); 
     1090                $nav_menu = false; 
     1091                if ( isset( $instance['nav_menu'] ) ) { 
     1092                        $nav_menu = wp_get_nav_menu_object( $instance['nav_menu'] ); 
     1093                } 
    10631094 
    10641095                if ( !$nav_menu ) 
    10651096                        return;