Advertisement
sparkweb

Widget Classes Code to Work With Widget Logic

Mar 2nd, 2012
281
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.85 KB | None | 0 0
  1. function kc_widget_form_extend($instance, $widget) {
  2.     if (!isset($instance['classes'])) $instance['classes'] = null;
  3.    
  4.     /* Set your predetermied class choices here */
  5.     $myarray = "transparent,blue,aqua,baby_blue";
  6.  
  7.     $myclasses = explode(",",$myarray);
  8.     $row = "<p>\n";
  9.     $row .= "\t<label for='widget-{$widget->id_base}-{$widget->number}-classes'>Widget Display Style:</label>\n";
  10.     $row .= "\t<select  name='widget-{$widget->id_base}[{$widget->number}][classes]'  id='widget-{$widget->id_base}-{$widget->number}-classes'  class='widefat'>\n";
  11.     foreach($myclasses as $myclass) {
  12.         $instance_selected = null; if($instance['classes']==$myclass) $instance_selected = " selected='selected'";
  13.         $row .= "\t<option value='".$myclass."'".$instance_selected.">".ucwords(str_replace("_"," ",$myclass))."</option>\n";
  14.     }
  15.     $row .= "</select>\n";
  16.     echo $row;
  17.     return $instance;
  18. }
  19. add_filter('widget_form_callback', 'kc_widget_form_extend', 10, 2);
  20.  
  21. function kc_widget_update($instance, $new_instance) {
  22.     $instance['classes'] = $new_instance['classes'];
  23.     return $instance;
  24. }
  25. add_filter( 'widget_update_callback', 'kc_widget_update', 10, 2 );
  26.  
  27. function kc_dynamic_sidebar_params($params) {
  28.     global $wp_registered_widgets;
  29.     $widget_id = $params[0]['widget_id'];
  30.     $widget_obj = $wp_registered_widgets[$widget_id];
  31.     if (!($widgetlogicfix = $widget_obj['callback'][0]->option_name)) $widgetlogicfix = $widget_obj['callback_wl_redirect'][0]->option_name;
  32.     $widget_opt = get_option($widgetlogicfix);
  33.     $widget_num = $widget_obj['params'][0]['number'];
  34.     if (isset($widget_opt[$widget_num]['classes']) && !empty($widget_opt[$widget_num]['classes'])) {
  35.         $params[0]['before_widget'] = preg_replace('/class="/', "class=\"{$widget_opt[$widget_num]['classes']} ", $params[0]['before_widget'], 1);
  36.     }
  37.     return $params;
  38. }
  39. add_filter('dynamic_sidebar_params', 'kc_dynamic_sidebar_params');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement