You can either edit the original function, or, better yet, use remove_action to remove add_action( 'widgets_init', 'twentyeleven_widgets_init' ); and then reattach your own function add_action('widgets_init', 'your_widgets_init_function' );

Don't edit parent theme, but adding own function is the way to go. Original is coded to be pluggable (able to be declared in different place).
–
Rarst♦Oct 12 '12 at 11:46

I want to modify the Main Sidebar and this is the only thing I could think of. Is there a way to change before_widget and after_widget without redoing the whole function?
–
NohlOct 12 '12 at 17:34

@paulruescher I had read in multiple places (including the WP codex) that the correct procedure for a child theme was to use the if(!function_exists()) structure. I welcome any other methods.
–
NohlOct 12 '12 at 17:36

I just found this thread that indicates that some twentyeleven functions lack the if(!function_exists()) code required for the trick to work. @paulruescher can you suggest the correct usage of remove_action to fix it?
–
NohlOct 12 '12 at 17:56

1

I would look into trying to do it properly, but personally what I would do is use remove_action. In functions.php, there is an add_action right below twentyeleven_widgets_init. Use the first paramater passed in your remove_action. Then, write your new twentyeleven_widgets_init, and use add_action to re-add the function using that original add_action parameter
–
paulruescherOct 13 '12 at 20:51