Advertisement
arnabkumar

Custom CSS Classes for WordPress Widgets

Nov 30th, 2014
212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.23 KB | None | 0 0
  1. plugin - https://wordpress.org/plugins/widget-css-classes/
  2.  
  3. or
  4. add this to functions.php
  5. //http://ednailor.com/2011/01/24/adding-custom-css-classes-to-sidebar-widgets/
  6. //Custom CSS Classes for WordPress Widgets
  7.    
  8. function kc_widget_form_extend( $instance, $widget ) {
  9. if ( !isset($instance['classes']) )
  10. $instance['classes'] = null;
  11.  
  12.  
  13.  
  14.  
  15.  
  16. /* Set your predetermied class choices here */
  17. $myarray = "class1,class2,class3";
  18.  
  19. $myclasses = explode(",",$myarray);
  20. $row = "<p>\n";
  21. $row .= "\t<label for='widget-{$widget->id_base}-{$widget->number}-classes'>Class:</label>\n";
  22. $row .= "\t<select name='widget-{$widget->id_base}[{$widget->number}][classes]' id='widget-{$widget->id_base}-{$widget->number}-classes' class='widefat'>\n";
  23. foreach($myclasses as $myclass) {
  24. $instance_selected = null; if($instance['classes']==$myclass) $instance_selected = " selected='selected'";
  25. $row .= "\t<option value='".$myclass."'".$instance_selected.">".$myclass."</option>\n";
  26. }
  27. $row .= "</select>\n";
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36. //Allow the user to assign their own classes:
  37. /* Allows User to Add Custom CSS Classes */
  38. $row .= "\t<input type='text' name='widget-{$widget->id_base}[{$widget->number}][classes]' id='widget-{$widget->id_base}-{$widget->number}-classes' class='widefat' value='{$instance['classes']}'/>\n";
  39. $row .= "</p>\n";
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47. echo $row;
  48. return $instance;
  49. }
  50. add_filter('widget_form_callback', 'kc_widget_form_extend', 10, 2);function kc_widget_update( $instance, $new_instance ) {
  51. $instance['classes'] = $new_instance['classes'];
  52. return $instance;
  53. }
  54. add_filter( 'widget_update_callback', 'kc_widget_update', 10, 2 );
  55. function kc_dynamic_sidebar_params( $params ) {
  56. global $wp_registered_widgets;
  57. $widget_id    = $params[0]['widget_id'];
  58. $widget_obj    = $wp_registered_widgets[$widget_id];
  59. $widget_opt    = get_option($widget_obj['callback'][0]->option_name);
  60. $widget_num    = $widget_obj['params'][0]['number'];
  61.  
  62. if ( isset($widget_opt[$widget_num]['classes']) && !empty($widget_opt[$widget_num]['classes']) )
  63. $params[0]['before_widget'] = preg_replace( '/class="/', "class=\"{$widget_opt[$widget_num]['classes']} ", $params[0]['before_widget'], 1 );
  64.  
  65. return $params;
  66. }
  67. add_filter( 'dynamic_sidebar_params', 'kc_dynamic_sidebar_params' );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement