'advanced_recent_posts_widget', 'description' => __('Shows recent posts / custom post types. Includes advanced options.') ); parent::__construct('advanced-recent-posts', __('Advanced Recent Posts'), $widget_ops); } function widget($args, $instance) { extract( $args ); $title = apply_filters( 'widget_title', empty($instance['title']) ? 'Recent Posts' : $instance['title'], $instance, $this->id_base); if ( ! $number = absint( $instance['number'] ) ) $number = 5; if ( ! $excerpt_length = absint( $instance['excerpt_length'] ) ) $excerpt_length = 5; if( ! $cats = $instance["cats"] ) $cats=''; if( ! $show_type = $instance["show_type"] ) $show_type='post'; if( ! $thumb_h = absint($instance["thumb_h"] )) $thumb_h=50; if( ! $thumb_w = absint($instance["thumb_w"] )) $thumb_w=50; if( ! $excerpt_readmore = $instance["excerpt_readmore"] ) $excerpt_readmore='Read more →'; $default_sort_orders = array('date', 'title', 'comment_count', 'rand'); if ( in_array($instance['sort_by'], $default_sort_orders) ) { $sort_by = $instance['sort_by']; $sort_order = (bool) $instance['asc_sort_order'] ? 'ASC' : 'DESC'; } else { // by default, display latest first $sort_by = 'date'; $sort_order = 'DESC'; } //Excerpt more filter $new_excerpt_more= create_function('$more', 'return " ";'); add_filter('excerpt_more', $new_excerpt_more); // Excerpt length filter $new_excerpt_length = create_function('$length', "return " . $excerpt_length . ";"); if ( $instance["excerpt_length"] > 0 ) add_filter('excerpt_length', $new_excerpt_length); // post info array. $my_args=array( 'showposts' => $number, 'category__in'=> $cats, 'orderby' => $sort_by, 'order' => $sort_order, 'post_type' => $show_type ); $adv_recent_posts = null; $adv_recent_posts = new WP_Query($my_args); echo $before_widget; // Widget title echo $before_title; echo $instance["title"]; echo $after_title; // Post list echo "