__( 'Display a tabbed content widget for your popular posts, recent posts and popular tags.', 'modernwpthemes' ) ) ); } /** * Helper function that holds widget fields * Array is used in update and form functions */ private function widget_fields() { $fields = array( // Other fields 'tabs_post_count' => array ( 'modernwpthemes_widgets_name' => 'tabs_post_count', 'modernwpthemes_widgets_title' => __( 'Posts to Show', 'modernwpthemes' ), 'modernwpthemes_widgets_field_type' => 'text' ), 'tabs_tag_count' => array ( 'modernwpthemes_widgets_name' => 'tabs_tag_count', 'modernwpthemes_widgets_title' => __( 'Tags to Show', 'modernwpthemes' ), 'modernwpthemes_widgets_field_type' => 'text' ), ); 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 ); $tabs_post_count = $instance['tabs_post_count']; $tabs_tag_count = $instance['tabs_tag_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[$modernwpthemes_widgets_name] = modernwpthemes_widgets_updated_field_value( $widget_field, $new_instance[$modernwpthemes_widgets_name] ); echo $instance[$modernwpthemes_widgets_name]; } return $instance; } /** * Back-end widget form. * * @see WP_Widget::form() * * @param array $instance Previously saved values from database. * * @uses modernwpthemes_widgets_show_widget_field() defined in 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 ); $modernwpthemes_widgets_field_value = isset( $instance[$modernwpthemes_widgets_name] ) ? esc_attr( $instance[$modernwpthemes_widgets_name] ) : ''; modernwpthemes_widgets_show_widget_field( $this, $widget_field, $modernwpthemes_widgets_field_value ); } } }