Create a widget that allows text input

I need to create a simple widget that has a text input field.

I need the widget to create the markup below…

Read More
<div class="textwidget">
    <div class="avatar"> 
        <div class="avatartext"> 
            <p>CONTENTS OF THE TEXT INPUT HERE</p>
        </div> 
    <div class="avatarimage"></div> 
</div> 

I’ve started the process of stubbing out the widget with the code below. I’m just not shure how to code the my_avatar() function…

function my_avatar()
{
//Widget markup goes here. How to pull the widget text entry?

}

register_activation_hook(__FILE__, 'my_avatar');

class My_Widget_Avatar extends WP_Widget {
    function My_Widget_Avatar() {
        $widget_ops = array( 'classname' => 'widget_avatar', 'description' => __( "My Avatar Widget" ) );
        $this->WP_Widget('my_avatar', __('My Avatar'), $widget_ops);
    }
}

add_action('widgets_init', create_function('', "register_widget('My_Widget_Avatar');"));

Related posts

Leave a Reply

1 comment

  1. Complete code:

    class My_Widget_Avatar extends WP_Widget {
        function My_Widget_Avatar() {
            $widget_ops = array( 'classname' => 'widget_avatar', 'description' => __( "My Avatar Widget" ) );
            $this->WP_Widget('my_avatar', __('My Avatar'), $widget_ops);
        }
    
        function widget( $args, $instance ) {
            extract($args);
            $text = apply_filters( 'widget_text', $instance['text'], $instance );
            echo $before_widget;
            ?>
                <div class="textwidget">
                    <div class="avatar"> 
                        <div class="avatartext">
                            <p><?php echo $text; ?></p>
                        </div>
                    </div>
                    <div class="avatarimage"></div> 
                </div> 
            <?php
            echo $after_widget;
        }
    
        function update( $new_instance, $old_instance ) {
            $instance = $old_instance;
            if ( current_user_can('unfiltered_html') )
                $instance['text'] =  $new_instance['text'];
            else
                $instance['text'] = stripslashes( wp_filter_post_kses( addslashes($new_instance['text']) ) ); // wp_filter_post_kses() expects slashed
            return $instance;
        }
    
        function form( $instance ) {
            $instance = wp_parse_args( (array) $instance, array( 'text' => '' ) );
            $text = format_to_edit($instance['text']);
    ?>
    
            <textarea class="widefat" rows="16" cols="20" id="<?php echo $this->get_field_id('text'); ?>" name="<?php echo $this->get_field_name('text'); ?>"><?php echo $text; ?></textarea>
    <?php
        }
    }
    
    
    function lbi_widgets_init() {
        register_widget( 'My_Widget_Avatar' );
    }
    add_action( 'widgets_init', 'lbi_widgets_init' );