How To: First and Last CSS Classes for Sidebar Widgets
-
Thought this might be useful to somebody–it’s a filter function that automatically adds “first and last” css classes to dynamic sidebar widgets. It also numbers each widget (“widget-1”, “widget-2”, etc.).
It’s a slight improvement on Greenshady’s code in this post (it keeps a separate counter for each sidebar, and knows the total number of widgets in the current sidebar).
Suggestions for improvement are welcome. It could easily be modified to add even/odd classes.
/** * Add "first" and "last" CSS classes to dynamic sidebar widgets. Also adds numeric index class for each widget (widget-1, widget-2, etc.) */ function widget_first_last_classes($params) { global $my_widget_num; // Global a counter array $this_id = $params[0]['id']; // Get the id for the current sidebar we're processing $arr_registered_widgets = wp_get_sidebars_widgets(); // Get an array of ALL registered widgets if(!$my_widget_num) {// If the counter array doesn't exist, create it $my_widget_num = array(); } if(!isset($arr_registered_widgets[$this_id]) || !is_array($arr_registered_widgets[$this_id])) { // Check if the current sidebar has no widgets return $params; // No widgets in this sidebar... bail early. } if(isset($my_widget_num[$this_id])) { // See if the counter array has an entry for this sidebar $my_widget_num[$this_id] ++; } else { // If not, create it starting with 1 $my_widget_num[$this_id] = 1; } $class = 'class="widget-' . $my_widget_num[$this_id] . ' '; // Add a widget number class for additional styling options if($my_widget_num[$this_id] == 1) { // If this is the first widget $class .= 'widget-first '; } elseif($my_widget_num[$this_id] == count($arr_registered_widgets[$this_id])) { // If this is the last widget $class .= 'widget-last '; } $params[0]['before_widget'] = str_replace('class="', $class, $params[0]['before_widget']); // Insert our new classes into "before widget" return $params; } add_filter('dynamic_sidebar_params','widget_first_last_classes');
Viewing 8 replies - 1 through 8 (of 8 total)
Viewing 8 replies - 1 through 8 (of 8 total)
- The topic ‘How To: First and Last CSS Classes for Sidebar Widgets’ is closed to new replies.