Zenko WPZOOM Demo Site (see the documentation)
I made customization to the widget to exclude Same Posts already been shown on Featured Slider to avoid duplication
1. Open featured-category.php in wp-content/themes/zenko/functions/theme/widgets folder
2. Replace all code in featured-category.php with the following
<?php /*------------------------------------------*/ /* WPZOOM: Featured Category widget */ /*------------------------------------------*/ $wpzoomColors = array(); $wpzoomColors['blue'] = 'Blue'; $wpzoomColors['green'] = 'Green'; $wpzoomColors['pink'] = 'Pink'; $wpzoomColors['black'] = 'Black'; class wpzoom_widget_category extends WP_Widget { /* Widget setup. */ function wpzoom_widget_category() { /* Widget settings. */ $widget_ops = array( 'classname' =--> 'wpzoom', 'description' => __('Featured Category Widget for Homepage', 'wpzoom') ); /* Widget control settings. */ $control_ops = array( 'width' => 250, 'height' => 350, 'id_base' => 'wpzoom-widget-cat' ); /* Create the widget. */ $this->WP_Widget( 'wpzoom-widget-cat', __('WPZOOM: Featured Category', 'wpzoom'), $widget_ops, $control_ops ); } /* How to display the widget on the screen. */ function widget( $args, $instance ) { extract( $args ); /* Our variables from the widget settings. */ $title1 = apply_filters('widget_title', $instance['title1'] ); $color1 = $instance['color1']; $posts1 = $instance['posts1']; $category1 = get_category($instance['category1']); if ($category1) { $categoryLink1 = get_category_link($category1); } /* Before widget (defined by themes). */ //echo $before_widget; $z = 0; while ($z < 1) { $z++; $color = "color$z"; $categoryLink = "categoryLink$z"; $title = "title$z"; $posts = "posts$z"; $category = $instance["category$z"]; ?></pre> <div class="block"><!--?php if ( $$title ) { echo '<br ?--> <h3 class="'.$$color.'"><a href="'.$$categoryLink.'">'.$$title.' »</a></h3> '; } ?> <?php $featured_posts = new WP_Query( array( 'post__not_in' =--> get_option( 'sticky_posts' ), 'meta_key' => 'wpzoom_is_featured', 'meta_value' => 1 ) ); while ($featured_posts->have_posts()) { $featured_posts->the_post(); global $post; $postIDs[] = $post->ID; } $args=array( 'cat' => $category, 'post__not_in' => $postIDs, 'showposts' => $$posts, 'orderby' => 'date', 'order' => 'DESC' ); $second_query = new WP_Query( $args ); $i = 0; if ( $second_query->have_posts() ) : while( $second_query->have_posts() ) : $second_query->the_post(); unset($image,$cropLocation); $i++; global $post; if ($i == 1) { ?> <div class="firstn"> <?php get_the_image( array( 'size' =--> 'featured-cat', 'width' => 235, 'height' => 140 ) ); ?> <h2></h2> <small><?php printf('%s at %s', get_the_date(), get_the_time()); ?></small> <?php the_content_limit(170); ?></div> <!-- A list with another 3 articles from the same category--> <div class="rightn"> <ul> <ul> <li><?php get_the_image( array( 'size' =--> 'featured-cat-small', 'width' => 90, 'height' => 80 ) ); ?> <div class="rightcont"> <div class="bubble"></div> <?php the_content_limit(110, ''); ?> <small><?php printf('%s at %s', get_the_date(), get_the_time()); ?></small></div> <div style="clear: both;"></div></li> </ul> </ul> <?php else : echo''; _e('There are no posts in this category.', 'wpzoom'); echo' '; endif; ?></div> <div class="clear"></div> </div> <pre> <!-- end .category --> <!--?php <br ?--> } // while echo ' <!-- end .featCategory -->'; /* After widget (defined by themes). */ //echo $after_widget; wp_reset_query(); } /* Update the widget settings.*/ function update( $new_instance, $old_instance ) { $instance = $old_instance; /* Strip tags for title and name to remove HTML (important for text inputs). */ $instance['title1'] = strip_tags( $new_instance['title1'] ); $instance['category1'] = $new_instance['category1']; $instance['color1'] = $new_instance['color1']; $instance['posts1'] = $new_instance['posts1']; return $instance; } /** Displays the widget settings controls on the widget panel. * Make use of the get_field_id() and get_field_name() function when creating your form elements. This handles the confusing stuff. */ function form( $instance ) { /* Set up some default widget settings. */ $defaults = array( 'title1' => __('Category Name', 'wpzoom'), 'category1' => '0', 'color1' => 'blue', 'posts1' => '4' ); $instance = wp_parse_args( (array) $instance, $defaults ); global $wpzoomColors; ?> <label for="<?php echo $this->get_field_id( 'title1' ); ?>"><?php _e('Category Title:', 'wpzoom'); ?></label> <input id="<?php echo $this->get_field_id( 'title1' ); ?>" class="widefat" type="text" name="<?php echo $this->get_field_name( 'title1' ); ?>" value="<?php echo $instance['title1']; ?>" /> <label for="<?php echo $this->get_field_id('color1'); ?>"><?php _e('Title Background Color:', 'wpzoom'); ?></label> <select style="width: 90%;" name="<?php echo $this->get_field_name('color1'); ?>"> <?php foreach ($wpzoomColors as $key =--> $value) { $option = '<option selected="selected" value="'.$key; if ($key == $instance['color1']) { $option .='">';</option></select> <select style="width: 90%;" name="<?php echo $this->get_field_name('color1'); ?>"><option selected="selected" value="'.$key; if ($key == $instance['color1']) { $option .='"> $option .= $value;</option></select> <select style="width: 90%;" name="<?php echo $this->get_field_name('color1'); ?>"><option selected="selected" value="'.$key; if ($key == $instance['color1']) { $option .='"> $option .= '</option>';</select> <select style="width: 90%;" name="<?php echo $this->get_field_name('color1'); ?>"> echo $option;</select> <select style="width: 90%;" name="<?php echo $this->get_field_name('color1'); ?>"> }</select> <select style="width: 90%;" name="<?php echo $this->get_field_name('color1'); ?>"> ?></select> <label for="<?php echo $this->get_field_id('category1'); ?>"><?php _e('Category:', 'wpzoom'); ?></label> <select style="width: 90%;" name="<?php echo $this->get_field_name('category1'); ?>"> <option value="0">Choose category:</option></select> <select style="width: 90%;" name="<?php echo $this->get_field_name('category1'); ?>"> <?php <br /> ?> $cats = get_categories('hide_empty=0');</select> <select style="width: 90%;" name="<?php echo $this->get_field_name('category1'); ?>">foreach ($cats as $cat) {</select> <select style="width: 90%;" name="<?php echo $this->get_field_name('category1'); ?>"> $option = '<option selected="selected" value="'.$cat->term_id;<br /> if ($cat->term_id == $instance['category1']) { $option .='">';</option></select> <select style="width: 90%;" name="<?php echo $this->get_field_name('category1'); ?>"><option selected="selected" value="'.$cat->term_id;<br /> if ($cat->term_id == $instance['category1']) { $option .='"> $option .= $cat->cat_name;</option></select> <select style="width: 90%;" name="<?php echo $this->get_field_name('category1'); ?>"><option selected="selected" value="'.$cat->term_id;<br /> if ($cat->term_id == $instance['category1']) { $option .='"> $option .= ' ('.$cat->category_count.')';</option></select> <select style="width: 90%;" name="<?php echo $this->get_field_name('category1'); ?>"><option selected="selected" value="'.$cat->term_id;<br /> if ($cat->term_id == $instance['category1']) { $option .='"> $option .= '</option>';</select> <select style="width: 90%;" name="<?php echo $this->get_field_name('category1'); ?>"> echo $option;</select> <select style="width: 90%;" name="<?php echo $this->get_field_name('category1'); ?>"> }</select> <select style="width: 90%;" name="<?php echo $this->get_field_name('category1'); ?>"> ?></select> <label for="<?php echo $this->get_field_id('posts1'); ?>"><?php _e('Posts to show:', 'wpzoom'); ?></label> <select style="width: 90%;" name="<?php echo $this->get_field_name('posts1'); ?>"> <?php <br ?> $m = 0;</select> <select style="width: 90%;" name="<?php echo $this->get_field_name('posts1'); ?>"> while ($m < 11) {</select> <select style="width: 90%;" name="<?php echo $this->get_field_name('posts1'); ?>"> $m++;</select> <select style="width: 90%;" name="<?php echo $this->get_field_name('posts1'); ?>"> $option = '<option selected="selected" value="'.$m; if ($m == $instance['posts1']) { $option .='">';</option></select> <select style="width: 90%;" name="<?php echo $this->get_field_name('posts1'); ?>"><option selected="selected" value="'.$m; if ($m == $instance['posts1']) { $option .='"> $option .= $m;</option></select> <select style="width: 90%;" name="<?php echo $this->get_field_name('posts1'); ?>"><option selected="selected" value="'.$m; if ($m == $instance['posts1']) { $option .='"> $option .= '</option>';</select> <select style="width: 90%;" name="<?php echo $this->get_field_name('posts1'); ?>"> echo $option;</select> <select style="width: 90%;" name="<?php echo $this->get_field_name('posts1'); ?>"> }</select> <select style="width: 90%;" name="<?php echo $this->get_field_name('posts1'); ?>"> ?></select> <?php } } function wpzoom_register_category_widget() { register_widget('wpzoom_widget_category'); } add_action('widgets_init', 'wpzoom_register_category_widget'); ?>
Leave a Reply