How to create WordPress widgets with demo

in CMS, Wordpress / 2 Comments

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

How to create WordPress widgets with demo by Anil Kumar Panigrahi

demo link for How to create WordPress widgets with demo download link for How to create WordPress widgets with demo

Class

class contains the name with ‘__Widget’ and extends the ‘WP_Widget’

Class FL_Widget extends WP_Widget{
}

__construct()

__construct() is constructor for this class widget. This code will be run every time widget is loaded, when activated and updated.

public function __construct(){
        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.

public function widget($args,$instance){
        $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

public function form($instance){
        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.

public function update($new_instance,$old_instance){
        $instance = array();
        $instance['title'] = ( ! empty( $new_instance['title'] ) ) ? strip_tags( $new_instance['title'] ) : '';
        return $instance;
    }

With more than 8 years experience in PHP and Founder of Anil Labs, a blog for PHP and related posts. contributed posts regarding CodeIgniter, CakePHP and Learn PHP online ... Contact : php.anil@gmail.com

Discussion 2 Comments

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>