text_fields = array('blog-bogo-posts-latest-title', 'blog-bogo-number-of-post'); $this->select_fields = array('blog-bogo-select-category'); $widget_ops = array( 'classname' => 'blog_bogo_latest_posts_widget', 'description' => __('Displays latest posts lists from selected category.', 'blog-bogo'), 'customize_selective_refresh' => true, ); parent::__construct('blog_bogo_posts_latest', __('- Blog Bogo Latest Posts', 'blog-bogo'), $widget_ops); } /** * Front-end display of widget. * * @see WP_Widget::widget() * * @param array $args Widget arguments. * @param array $instance Saved values from database. */ public function widget($args, $instance) { $instance = parent::blog_bogo_sanitize_data($instance, $instance); $title = apply_filters('widget_title', $instance['blog-bogo-posts-latest-title'], $instance, $this->id_base); $category = isset($instance['blog-bogo-select-category']) ? $instance['blog-bogo-select-category'] : '0'; $number = isset($instance['blog-bogo-number-of-post']) ? $instance['blog-bogo-number-of-post'] : '4'; // open the widget container echo wp_kses_post ( $args['before_widget'] ); echo wp_kses_post ( $args['before_title'] ) . esc_html( $title ) . wp_kses_post ( $args['after_title'] ); $recent_posts = wp_get_recent_posts(array( 'numberposts' => absint( $number ), // Number of recent posts thumbnails to display 'post_status' => 'publish', // Show only the published posts 'cat' => absint($category),//(int) - use category id. )); if( !empty( $recent_posts ) ){ echo '