要创建自定义WordPress小部件,需要遵循以下步骤:
创建一个类来定义小部件。这个类应该继承自WordPress的WP_Widget类,并且要实现__construct()、widget()和form()方法。
示例代码:
class Custom_Widget extends WP_Widget {
public function __construct() {
parent::__construct(
'custom_widget',
'Custom Widget',
array( 'description' => 'A custom widget for your site' )
);
}
public function widget( $args, $instance ) {
// 输出小部件内容
}
public function form( $instance ) {
// 显示小部件的设置表单
}
}
使用WordPress的register_widget()函数将小部件类注册到WordPress中。
示例代码:
function register_custom_widget() {
register_widget( 'Custom_Widget' );
}
add_action( 'widgets_init', 'register_custom_widget' );
在widget()方法中编写小部件的内容。可以使用任何PHP代码来输出小部件的内容。
示例代码:
public function widget( $args, $instance ) {
echo $args['before_widget'];
if ( ! empty( $instance['title'] ) ) {
echo $args['before_title'] . apply_filters( 'widget_title', $instance['title'] ) . $args['after_title'];
}
echo '<p>Hello World!</p>';
echo $args['after_widget'];
}
在form()方法中编写小部件的设置表单。可以使用HTML和PHP代码来创建表单元素,并将表单数据保存到$instance数组中。
示例代码:
public function form( $instance ) {
$title = ! empty( $instance['title'] ) ? $instance['title'] : '';
?>
<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
}
在update()方法中保存小部件的设置。这个方法应该将表单数据从$instance数组中保存到数据库中。
示例代码:
public function update( $new_instance, $old_instance ) {
$instance = array();
$instance['title'] = ( ! empty( $new_instance['title'] ) ) ? sanitize_text_field( $new_instance['title'] ) : '';
return $instance;
}
完成以上步骤后,就可以在WordPress的小部件区域中找到自定义小部件,并将其添加到你的站点上。