|  | 
 
| 使用WP_Widget类来创建小工具 
 复制代码//注册
add_action('widgets_init',function(){
    register_widget('qss_info');
});
 复制代码//注册 如果上方出错,可能PHP版本低,用这个
add_action('widgets_init','new_register_widgets');
function new_register_widgets(){
  register_widget('qss_info');
}
 
 复制代码//类
class qss_info extends WP_Widget{
//建立
  public function __construct(){
    $widget_ops = array(
      'class_name' => 'my_widget',
      'description' => '我是描述信息',
    );
    parent::__construct('my_widget','我是标题',$widget_ops);
  }
  //前台输出内容
  public function widget($args,$instance){
        extract($args);
        $title = apply_filters('widget_title', $instance['title']);
        $name = empty($instance['name']) ? ' ' : $instance['name'];
        $tips = empty($instance['tips']) ? ' ' : $instance['tips'];
        echo $before_widget;
        echo '<p>标题:'.$title.'</p>'
        echo '<p>姓名:'.$name.'</p>'
        echo '<p>提示:'.$tips.'</p>'
  }
  //后台小工具管理页面
  public function form($instance){
        $defaults = array('title'=>'我是新小工具','name'=>'张三','tips'=>'法外狂徒'); //默认值,使用时可修改
        $instance = wp_parse_args((array)$instance,$defaults);
        $title = $instance['title'];
        $name = $instance['name'];
        $tips = $instance['tips'];
        ?>
                <p>标题:<input class="widefat" name="<? echo $this->get_field_name('title');   ?>" type="text" value="<? echo esc_attr($title); ?>"></p>
                <p>姓名:<input class="widefat" name="<? echo $this->get_field_name('name'); ?>" type="text" value="<? echo esc_attr($name); ?>"></p>
                <p>提示:<textarea class="widefat" name="<? echo $this->get_field_name('title'); ?>" /> <? echo esc_attr($title); ?> </textarea></p>
        <?
  }
  //保存上方的设置
  public function update($new_instance, $old_instance){
        $instance = $old_instance;
        $instance['title'] = strip_tags(trim($new_instance['title']));        
        $instance['name'] = strip_tags(trim($new_instance['name']));
        $instance['tips'] = strip_tags(trim($new_instance['tips']));
        return $instance;
  }
}
 
 | 
 |