5ucms论坛

标题: wordpress插件开发教程04 添加到小工具 侧边栏小工具 [打印本页]

作者: admin    时间: 2021-6-7 22:00
标题: wordpress插件开发教程04 添加到小工具 侧边栏小工具
使用WP_Widget类来创建小工具
  1. //注册
  2. add_action('widgets_init',function(){
  3.     register_widget('qss_info');
  4. });
复制代码

  1. //注册 如果上方出错,可能PHP版本低,用这个
  2. add_action('widgets_init','new_register_widgets');

  3. function new_register_widgets(){
  4.   register_widget('qss_info');
  5. }
复制代码


  1. //类
  2. class qss_info extends WP_Widget{
  3. //建立
  4.   public function __construct(){
  5.     $widget_ops = array(
  6.       'class_name' => 'my_widget',
  7.       'description' => '我是描述信息',
  8.     );
  9.     parent::__construct('my_widget','我是标题',$widget_ops);
  10.   }

  11.   //前台输出内容
  12.   public function widget($args,$instance){
  13.         extract($args);
  14.         $title = apply_filters('widget_title', $instance['title']);
  15.         $name = empty($instance['name']) ? ' ' : $instance['name'];
  16.         $tips = empty($instance['tips']) ? ' ' : $instance['tips'];
  17.         echo $before_widget;
  18.         echo '<p>标题:'.$title.'</p>'
  19.         echo '<p>姓名:'.$name.'</p>'
  20.         echo '<p>提示:'.$tips.'</p>'
  21.   }

  22.   //后台小工具管理页面
  23.   public function form($instance){
  24.         $defaults = array('title'=>'我是新小工具','name'=>'张三','tips'=>'法外狂徒'); //默认值,使用时可修改
  25.         $instance = wp_parse_args((array)$instance,$defaults);
  26.         $title = $instance['title'];
  27.         $name = $instance['name'];
  28.         $tips = $instance['tips'];
  29.         ?>
  30.                 <p>标题:<input class="widefat" name="<? echo $this->get_field_name('title');   ?>" type="text" value="<? echo esc_attr($title); ?>"></p>
  31.                 <p>姓名:<input class="widefat" name="<? echo $this->get_field_name('name'); ?>" type="text" value="<? echo esc_attr($name); ?>"></p>
  32.                 <p>提示:<textarea class="widefat" name="<? echo $this->get_field_name('title'); ?>" /> <? echo esc_attr($title); ?> </textarea></p>
  33.         <?
  34.   }

  35.   //保存上方的设置
  36.   public function update($new_instance, $old_instance){
  37.         $instance = $old_instance;
  38.         $instance['title'] = strip_tags(trim($new_instance['title']));        
  39.         $instance['name'] = strip_tags(trim($new_instance['name']));
  40.         $instance['tips'] = strip_tags(trim($new_instance['tips']));
  41.         return $instance;
  42.   }


  43. }
复制代码







欢迎光临 5ucms论坛 (http://bbs.5ucms.com/) Powered by Discuz! X3.2