以输出最新文章为例:

<?php

function recentlypost_load_widget() {
	register_widget( 'recentlypost_widget' );
}
add_action( 'widgets_init', 'recentlypost_load_widget' );

// Creating the widget 
class recentlypost_widget extends WP_Widget {

	function __construct() {
		parent::__construct(

			// Base ID of your widget
			'recentlypost_widget',

			// Widget name will appear in UI
			__( '小工具名称', 'text domain' ),

			// Widget description
			array( 'description' => __( '小工具说明文', 'text domain' ), )
		);
	}

	// Creating widget front-end

	public function widget( $args, $instance ) {
		$title = apply_filters( 'widget_title', $instance[ 'title' ] );

		// before and after widget arguments are defined by themes
		echo $args[ 'before_widget' ];
		if ( !empty( $title ) )
			echo $args[ 'before_title' ] . $title . $args[ 'after_title' ];

		// This is where you run the code and display the output
		?>
    <div class="recently-posts-current-category section-content">
        <!-- 想要输出的内容或者代码写这里 -->
    </div>
    <?php
		echo $args[ 'after_widget' ];
	}

	// Widget Backend 
	public function form( $instance ) {
		if ( isset( $instance[ 'title' ] ) ) {
			$title = $instance[ 'title' ];
		} else {
			$title = __( '表单默认文本', 'text domain' );
		}
		// Widget admin form
		?>
        <p>
            <label for="<?php echo $this->get_field_id( 'title' ); ?>">
				<?php _e( '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
	}

	// Updating widget replacing old instances with new
	public function update( $new_instance, $old_instance ) {
		$instance = array();
		$instance[ 'title' ] = ( !empty( $new_instance[ 'title' ] ) ) ? strip_tags( $new_instance[ 'title' ] ) : '';
		return $instance;
	}
} // Class wpb_widget ends here

?>