Changeset 6381

Show
Ignore:
Timestamp:
12/14/07 08:06:08 (10 months ago)
Author:
ryan
Message:

Fix registration of multiple sidebars. Props watson. fixes #5352

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/wp-includes/widgets.php

    r6364 r6381  
    1414 
    1515function register_sidebars($number = 1, $args = array()) { 
     16    global $wp_registered_sidebars; 
    1617    $number = (int) $number; 
    1718 
     
    2122    for ( $i=1; $i <= $number; $i++ ) { 
    2223        $_args = $args; 
     24 
    2325        if ( $number > 1 ) { 
    24             $_args['name'] = isset($args['name']) ? $args['name'] : sprintf(__('Sidebar %d'), $i); 
     26            $_args['name'] = isset($args['name']) ? sprintf($args['name'], $i) : sprintf(__('Sidebar %d'), $i); 
    2527        } else { 
    2628            $_args['name'] = isset($args['name']) ? $args['name'] : __('Sidebar'); 
    2729        } 
    28         $_args['id'] = isset($args['id']) ? $args['id'] : "sidebar-$i"; 
     30 
     31        if (isset($args['id'])) { 
     32            $_args['id'] = $args['id']; 
     33        } else { 
     34            $n = count($wp_registered_sidebars); 
     35            do { 
     36                $n++; 
     37                $_args['id'] = "sidebar-$n"; 
     38            } while (isset($wp_registered_sidebars[$_args['id']])); 
     39        } 
     40 
    2941        register_sidebar($_args); 
    3042    }