5ucms论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 10401|回复: 0

[插件/开发] wordpress插件开发教程04 添加到小工具 侧边栏小工具

[复制链接]

670

主题

785

帖子

8228

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
8228
发表于 2021-6-7 22:00:22 | 显示全部楼层 |阅读模式
使用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. }
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|5ucms.com

GMT+8, 2024-4-19 06:35 , Processed in 0.562500 second(s), 30 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表