Add a select box to all widgets

I would like to add a default select box to all widgets placed in the sidebars of my site. This would allow to choose the color of the associated widget.
Do you know how i can make this ? I know how to make a custom widget.
Thank you

Related posts

Leave a Reply

1 comment

  1. Thanks to Ed Nailor & Kucrut !

    http://ednailor.com/2011/01/24/adding-custom-css-classes-to-sidebar-widgets/

        // __________________________________________________________
    //
    // CUSTOM CLASS BY WIDGETS
    
    function kc_widget_form_extend( $instance, $widget ) {
     if ( !isset($instance['classes']) )
     $instance['classes'] = null;
     /* Set your predetermied class choices here */
     $myarray = "class1,class2,class3";
    
    $myclasses = explode(",",$myarray);
     $row = "

    n"; $row .= "tid_base}-{$widget->number}-classes'>Class:n"; $row .= "tid_base}[{$widget->number}][classes]' id='widget-{$widget->id_base}-{$widget->number}-classes' class='widefat'>n"; foreach($myclasses as $myclass) { $instance_selected = null; if($instance['classes']==$myclass) $instance_selected = " selected='selected'"; $row .= "t".$myclass."n"; } $row .= "n"; echo $row; return $instance; } add_filter('widget_form_callback', 'kc_widget_form_extend', 10, 2);function kc_widget_update( $instance, $new_instance ) { $instance['classes'] = $new_instance['classes']; return $instance; } add_filter( 'widget_update_callback', 'kc_widget_update', 10, 2 ); function kc_dynamic_sidebar_params( $params ) { global $wp_registered_widgets; $widget_id = $params[0]['widget_id']; $widget_obj = $wp_registered_widgets[$widget_id]; $widget_opt = get_option($widget_obj['callback'][0]->option_name); $widget_num = $widget_obj['params'][0]['number']; if ( isset($widget_opt[$widget_num]['classes']) && !empty($widget_opt[$widget_num]['classes']) ) $params[0]['before_widget'] = preg_replace( '/class="/', "class="{$widget_opt[$widget_num]['classes']} ", $params[0]['before_widget'], 1 ); return $params; } add_filter( 'dynamic_sidebar_params', 'kc_dynamic_sidebar_params' );