WordPress.org

Make WordPress Core

Ticket #4169: id-compat-fix.diff

File id-compat-fix.diff, 5.2 KB (added by rob1n, 11 years ago)
  • wp-includes/widgets.php

     
    6464                unset( $wp_registered_sidebars[$name] );
    6565}
    6666
    67 function register_sidebar_widget($name, $output_callback, $classname = '', $id = '') {
     67function register_sidebar_widget( $name, $output_callback, $classname = '' ) {
     68        $params = array_slice( func_get_args(), 3 );
     69        return wp_register_sidebar_widget( $name, sanitize_title( $name ), $output_callback, $classname, $params );
     70}
     71
     72function wp_register_sidebar_widget($name, $id, $output_callback, $classname = '', $params = array()) {
    6873        global $wp_registered_widgets, $wp_register_widget_defaults;
    6974
    7075        // Compat
     
    7479                else
    7580                        $name = $name[0];
    7681        }
     82       
     83        $id = sanitize_title( $id );
    7784
    78         // Last resort -- this can be broken when names get translated so please provide a unique id.
    79         if ( empty($id) )
    80                 $id = sanitize_title($name);
    81 
    8285        if ( (!isset($classname) || empty($classname) || !is_string($classname)) && is_string($output_callback) )
    8386                        $classname = $output_callback;
    8487
     
    8790                'id' => $id,
    8891                'callback' => $output_callback,
    8992                'classname' => $classname,
    90                 'params' => array_slice(func_get_args(), 4)
     93                'params' => $params
    9194        );
    9295
    9396        if ( empty($output_callback) )
     
    102105        unregister_widget_control($id);
    103106}
    104107
    105 function register_widget_control($name, $control_callback, $width = 300, $height = 200, $id = '') {
     108function register_widget_control( $name, $control_callback, $width = 300, $height = 200 ) {
     109        $params = array_slice( func_get_args(), 4 );
     110        return wp_register_widget_control( $name, sanitize_title( $name ), $control_callback, $width, $height, $params );
     111}
     112
     113function wp_register_widget_control($name, $id, $control_callback, $width = 300, $height = 200, $params = array()) {
    106114        global $wp_registered_widget_controls, $wp_register_widget_defaults;
    107115
    108116        // Compat
     
    112120                else
    113121                        $name = $name[0];
    114122        }
     123       
     124        $id = sanitize_title( $id );
    115125
    116         if ( empty($id) )
    117                 $id = $name;
    118 
    119         $id = sanitize_title($id);
    120 
    121126        $width = (int) $width > 90 ? (int) $width + 60 : 360;
    122127        $height = (int) $height > 60 ? (int) $height + 40 : 240;
    123128
     
    130135                        'callback' => $control_callback,
    131136                        'width' => $width,
    132137                        'height' => $height,
    133                         'params' => array_slice(func_get_args(), 5)
     138                        'params' => $params
    134139                );
    135140}
    136141
     
    870875
    871876        $wp_register_widget_defaults = true;
    872877
    873         register_sidebar_widget(__('Pages'), 'wp_widget_pages', 'widget_pages', 'pages');
    874         register_widget_control(__('Pages'), 'wp_widget_pages_control', 300, 90, 'pages');
    875         register_sidebar_widget(__('Calendar'), 'wp_widget_calendar', 'widget_calendar', 'calendar');
    876         register_widget_control(__('Calendar'), 'wp_widget_calendar_control', 300, 90, 'calendar');
    877         register_sidebar_widget(__('Archives'), 'wp_widget_archives', 'widget_archives', 'archives');
    878         register_widget_control(__('Archives'), 'wp_widget_archives_control', 300, 100, 'archives');
    879         register_sidebar_widget(__('Links'), 'wp_widget_links', 'widget_links', 'links');
    880         register_sidebar_widget(__('Meta'), 'wp_widget_meta', 'widget_meta', 'meta');
    881         register_widget_control(__('Meta'), 'wp_widget_meta_control', 300, 90, 'meta');
    882         register_sidebar_widget(__('Search'), 'wp_widget_search', 'widget_search', 'search');
    883         register_sidebar_widget(__('Categories'), 'wp_widget_categories', 'widget_categories', 'categories');
    884         register_widget_control(__('Categories'), 'wp_widget_categories_control', 300, 150, 'categories');
    885         register_sidebar_widget(__('Recent Posts'), 'wp_widget_recent_entries', 'widget_recent_entries', 'recent-posts');
    886         register_widget_control(__('Recent Posts'), 'wp_widget_recent_entries_control', 300, 90, 'recent-posts');
     878        wp_register_sidebar_widget(__('Pages'), 'pages', 'wp_widget_pages', 'widget_pages');
     879        wp_register_widget_control(__('Pages'), 'pages', 'wp_widget_pages_control', 300, 90);
     880        wp_register_sidebar_widget(__('Calendar'), 'calendar', 'wp_widget_calendar', 'widget_calendar');
     881        wp_register_widget_control(__('Calendar'), 'calendar', 'wp_widget_calendar_control', 300, 90);
     882        wp_register_sidebar_widget(__('Archives'), 'archives', 'wp_widget_archives', 'widget_archives');
     883        wp_register_widget_control(__('Archives'), 'archives', 'wp_widget_archives_control', 300, 100);
     884        wp_register_sidebar_widget(__('Links'), 'links', 'wp_widget_links', 'widget_links');
     885        wp_register_sidebar_widget(__('Meta'), 'meta', 'wp_widget_meta', 'widget_meta');
     886        wp_register_widget_control(__('Meta'), 'meta', 'wp_widget_meta_control', 300, 90);
     887        wp_register_sidebar_widget(__('Search'), 'search', 'wp_widget_search', 'widget_search');
     888        wp_register_sidebar_widget(__('Categories'), 'categories', 'wp_widget_categories', 'widget_categories');
     889        wp_register_widget_control(__('Categories'), 'categories', 'wp_widget_categories_control', 300, 150);
     890        wp_register_sidebar_widget(__('Recent Posts'), 'recent-posts', 'wp_widget_recent_entries', 'widget_recent_entries');
     891        wp_register_widget_control(__('Recent Posts'), 'recent-posts', 'wp_widget_recent_entries_control', 300, 90);
    887892        wp_widget_text_register();
    888893        wp_widget_rss_register();
    889894        wp_widget_recent_comments_register();