Hi friends, In this post I am going to explain about wordpress custom widget and how to create WordPress widgets using with demo. For widget development we have follow the functions as mentioned in below.
1. Widget Class name should be ended with ‘_Widget’ only.
2. Class should extends ‘WP_Widget’
3. Have four functions
a) __construct()
b) widget($args,$instance)
c) form($instance)
d) update($new_instance,$old_instance)

How to create WordPress widgets with demo by Anil Kumar Panigrahi
2. Class should extends ‘WP_Widget’
3. Have four functions
a) __construct()
b) widget($args,$instance)
c) form($instance)
d) update($new_instance,$old_instance)

How to create WordPress widgets with demo by Anil Kumar Panigrahi
![]() |
![]() |
Class
class contains the name with ‘__Widget’ and extends the ‘WP_Widget’
}
__construct()
__construct() is constructor for this class widget. This code will be run every time widget is loaded, when activated and updated.
parent::__construct(
'fl_widget', // Base ID
'Favorite Link Widget', // Name
array( 'description' => __( 'A Favorite Link Widget is developed by Anil Kumar Panigrahi', 'text_domain' ), ) // Args
);
}
widget($args,$instance)
widget($args,$instance) function contains the code that will be rendered to the sidebar when widget is added and that will be visible to wbsite visitors.
$title = apply_filters( 'widget_title', $instance['title'] );
echo $args['before_widget'];
echo __( 'Hello, World!', 'text_domain' );
echo $args['after_widget'];
}
form($instance)
form($instance) function contains the setting page on WordPress widget admin screen. That will be visible in the Appearance -> Widgets. This method called the
form and all controlls will appear when widget options are expanded
if(isset($instance['title'])){
$title = $instance['title'];
}else{
$title = __('New Widget Title','text_domain');
}
?>
<p>
<label for="<?php echo $this->get_field_name( 'title' ); ?>"><?php _e( 'Widget Title:' ); ?></label>
<input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>" />
</p>
<?php
}
update($new_instance,$old_instance)
update($new_instance,$old_instance) function called when click on “Save” option in the settings page in the admin secion/screen. And those details will save
into database by options.
$instance = array();
$instance['title'] = ( ! empty( $new_instance['title'] ) ) ? strip_tags( $new_instance['title'] ) : '';
return $instance;
}
Pingback : Execute PHP Code in Wordpress Widget - Anil Labs
Pingback : PHP code for Author Widget in Wordpress - Anil Labs
Pingback : Wordpress Favorite Links Widget 1.2 - Anil Labs