'pragyan_blog_post_widget', 'description' => __('Displays posts from selected categories in carousel layouts.', 'pragyan') ); parent::__construct('pragyan_blog_post_widget', __('Pragyan::Blog Post', 'pragyan'), $widget_ops); } public function widget_fields() { $fields = array( 'widget_title' => array( 'name' => 'widget_title', 'title' => esc_html__('Title', 'pragyan'), 'type' => 'text', 'default' => esc_html__('Blog Post', 'pragyan'), ), 'category' => array( 'name' => 'category', 'title' => esc_html__('Category', 'pragyan'), 'type' => 'dropdown_categories' ), 'number_of_posts' => array( 'name' => 'number_of_posts', 'title' => esc_html__('Number of Posts', 'pragyan'), 'type' => 'number', 'default' => 3 ), ); return $fields; } /** * Front-end display of widget. * * @param array $args Widget arguments. * @param array $instance Saved values from database. * @see WP_Widget::widget() * */ function widget($args, $instance_arg) { $instance = Pragyan_Widget_Validation::instance()->validate($instance_arg, $this->widget_fields()); $category = isset($instance['category']) ? $instance['category'] : 0; $pragyan_post_count = apply_filters('pragyan_blog_post_default_posts_count', $instance['number_of_posts']); $pragyan_block_args = array( 'cat' => array($category), 'posts_per_page' => absint($pragyan_post_count) ); echo $args['before_widget']; ?>
have_posts()) { echo '