'education_master_carousel', 'description' => __( 'Displays posts from selected categories in carousel layouts.', 'education-master' ) ); parent::__construct( 'education_master_carousel', __( 'Carousel', 'education-master' ), $widget_ops ); } /** * Helper function that holds widget fields * Array is used in update and form functions */ private function widget_fields() { $education_master_categories_lists = education_master_categories_lists(); $fields = array( 'block_title' => array( 'education_master_widgets_name' => 'block_title', 'education_master_widgets_title' => __( 'Block title', 'education-master' ), 'education_master_widgets_description' => __( 'Enter your block title. (Optional - Leave blank to hide title.)', 'education-master' ), 'education_master_widgets_field_type' => 'text' ), 'block_cat_ids' => array( 'education_master_widgets_name' => 'block_cat_ids', 'education_master_widgets_title' => __( 'Block Categories', 'education-master' ), 'education_master_widgets_field_type' => 'multicheckboxes', 'education_master_widgets_field_options' => $education_master_categories_lists ), ); return $fields; } /** * 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 ) { extract( $args ); if ( empty( $instance ) ) { return; } $education_master_block_title = empty( $instance['block_title'] ) ? '' : $instance['block_title']; $education_master_block_cat_ids = empty( $instance['block_cat_ids'] ) ? '' : $instance['block_cat_ids']; $education_master_style = empty( $instance['style'] ) ? 'layout2' : $instance['style']; if ( ! empty( $education_master_block_cat_ids ) ) { $checked_cats = array(); foreach ( $education_master_block_cat_ids as $cat_key => $cat_value ) { $checked_cats[] = $cat_key; } } else { return; } $education_master_get_cats_ids = implode( ",", $checked_cats ); $education_master_post_count = apply_filters( 'education_master_carousel_default_posts_count', 10 ); $education_master_block_args = array( 'cat' => $education_master_get_cats_ids, 'posts_per_page' => absint( $education_master_post_count ) ); echo $before_widget; ?> widget_fields(); // Loop through fields foreach ( $widget_fields as $widget_field ) { extract( $widget_field ); // Use helper function to get updated field values $instance[ $education_master_widgets_name ] = education_master_widgets_updated_field_value( $widget_field, $new_instance[ $education_master_widgets_name ] ); } return $instance; } /** * Back-end widget form. * * @see WP_Widget::form() * * @param array $instance Previously saved values from database. * * @uses education_master_widgets_show_widget_field() defined in edm-widget-fields.php */ public function form( $instance ) { $widget_fields = $this->widget_fields(); // Loop through fields foreach ( $widget_fields as $widget_field ) { // Make array elements available as variables extract( $widget_field ); $education_master_widgets_field_value = ! empty( $instance[ $education_master_widgets_name ] ) ? wp_kses_post( $instance[ $education_master_widgets_name ] ) : ''; education_master_widgets_show_widget_field( $this, $widget_field, $education_master_widgets_field_value ); } } }