以输出最新文章为例:
<?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
?>
评论区
发表新的留言
您可以留言提出您的疑问或建议。
您的留言得到回复时,会通过您填写的邮箱提醒您。