I’ve often found a need for a simple replacement to the WordPress category widget that allows me to remove some of the categories. I whipped this up real quick for a client and thought others might find it handy. You can copy and paste it or download it from Google Code. Comment with any questions or suggestions.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | <?php class limited_catagories_list_widget extends WP_Widget { function limited_catagories_list_widget(){ $widget_ops = array( 'classname' => 'Selective categories', 'description' => 'Show a list of Categories, with the ability to exclude categories' ); $control_ops = array( 'id_base' => 'some-cats-widget' ); $this->WP_Widget( 'some-cats-widget', 'Selective Catagories', $widget_ops, $control_ops ); } function form ( $instance){ $defaults = array( 'title' => 'Catagories', 'cats' => '' ); $instance = wp_parse_args( (array) $instance, $defaults ); ?> <p> <label for="<?php echo $this->get_field_id( 'title' ); ?>">Title:</label> <input id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" value="<?php echo $instance['title']; ?>" style="width:100%;" /> </p> <p> <label for="<?php echo $this->get_field_id( 'cats' ); ?>">Categories to exclude(comma separated list of Category IDs): </label> <input id="<?php echo $this->get_field_id( 'cats' ); ?>" name="<?php echo $this->get_field_name( 'cats' ); ?>" value="<?php echo $instance['cats']; ?>" style="width:100%;" /> </p> <?php } function update($new_instance, $old_instance) { $instance = $old_instance; $instance['title'] = strip_tags( $new_instance['title'] ); $instance['cats'] = strip_tags( $new_instance['cats'] ); return $instance; } function widget($args, $instance){ extract( $args ); $title = apply_filters('widget_title', $instance['title'] ); $cats = $instance['cats']; echo $before_widget; if ( $title ) echo $before_title . $title . $after_title; echo "<ul>"; wp_list_categories("exclude=$cats&title_li="); echo "</ul>"; echo $after_widget; } } function register_jorbin_widget(){ register_widget('limited_catagories_list_widget'); } add_action('widgets_init', 'register_jorbin_widget'); ?> |