5ucms论坛

标题: register_widget()函数 unregister_widget() 注册/卸载一个新的小工具 [打印本页]

作者: admin    时间: 2021-5-30 15:53
标题: register_widget()函数 unregister_widget() 注册/卸载一个新的小工具
语法结构

  1. <?php register_widget( $widget_class ) ?>
复制代码


参数
$widget_class指的是注册小工具的类的 extends WP_Widget


实例

  1. <?php class ProductWidget extends WP_Widget {
  2.     public function __construct() {
  3.         $widget_pro = array ( //一个数组提供了Widget的一些基本信息
  4.             'description' => "设置侧边栏产品"
  5.         );
  6.         parent::__construct('pic', "近期产品",$widget_pro);
  7.     }
  8.     // $args中包含了4个值:before_title,after_title,before_widget,after_widget,
  9.        分别是要显示在title和widget前后的html。
  10.     // $instance是当前Widget的一些属性设置
  11.     public function widget( $args, $instance ) {
  12.         $url = $instance[ 'depth' ];
  13.         $link = $instance[ 'link' ];
  14.         $title = $instance['title'];
  15.         extract( $args );
  16.         echo $before_widget;
  17.         ?>
  18.         <div class="pic">
  19.             <a href="<?php echo $link; ?>"><img src="<?php echo $url; ?>" title="<?php echo $title; ?>" alt="<?php echo $title; ?>" style="max-width: 100%;"></a>
  20.         </div>
  21.         <?php
  22.     }

  23.     public function form( $instance ) {
  24.         // Output admin widget options form
  25.         $defaults = array(
  26.             'depth' => '-1'
  27.         );
  28.         $depth = $instance[ 'depth' ];
  29.         $link = $instance[ 'link' ];
  30.         $title = $instance['title'];
  31.         // markup for form
  32.         ?>
  33.         <p>
  34.             <label for="<?php echo $this->get_field_id('title'); ?>">填写图片标题</label>
  35.             <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); ?>" />
  36.         </p>
  37.         <p>
  38.             <label for="<?php echo $this->get_field_id( 'depth' ); ?>">填写图片地址</label>
  39.             <input class="widefat" type="text" id="<?php echo $this->get_field_id( 'depth' ); ?>" name="<?php echo $this->get_field_name( 'depth' ); ?>" value="<?php echo esc_attr( $depth ); ?>">
  40.         </p>
  41.         <p>
  42.             <label for="<?php echo $this->get_field_id( 'link' ); ?>">填写图片链接</label>
  43.             <input class="widefat" type="text" id="<?php echo $this->get_field_id( 'link' ); ?>" name="<?php echo $this->get_field_name( 'link' ); ?>" value="<?php echo esc_attr( $link ); ?>">
  44.         </p>
  45.         <?php
  46.     }
  47.     public function update( $new_instance, $old_instance ) {
  48.         // Save widget options
  49.         $instance = $old_instance;
  50.         $instance[ 'depth' ] = strip_tags( $new_instance[ 'depth' ] );
  51.         $instance[ 'link' ] = strip_tags( $new_instance[ 'link' ] );
  52.         $instance['title'] = strip_tags($new_instance['title']);
  53.         return $instance;
  54.     }
  55. }
  56. function register_widgets() {
  57.     register_widget( 'ProductWidget' );
  58. }
  59. add_action( 'widgets_init', 'register_widgets' );
复制代码


unregister_widget()函数用来删除默认的小工具

语法结构

  1. <?php unregister_widget( $widget_class ) ?>
复制代码

$widget_class指的是一些已WordPress定义的类

实例

  1. function remove_default_widgets() {
  2.     unregister_widget('WP_Widget_Pages'); //Pages Widget 页面
  3.     unregister_widget('WP_Widget_Calendar'); //Calendar Widget 日历
  4.     unregister_widget('WP_Widget_Archives'); //Archives Widget 文章归档
  5.     unregister_widget('WP_Widget_Media_Audio '); //Audio Player Media Widget 视频
  6.     unregister_widget('WP_Widget_Media_Image '); //Image Media Widget 画廊
  7.     unregister_widget('WP_Widget_Media_Video'); //Video Media Widget 音频
  8.     unregister_widget('WP_Widget_Meta'); //Meta Widget 功能
  9.     unregister_widget('WP_Widget_Search'); //Search Widget 搜索
  10.     unregister_widget('WP_Widget_Text'); //Text Widget 文本
  11.     unregister_widget('WP_Widget_Categories'); //Categories Widget 分类目录
  12.     unregister_widget('WP_Widget_Recent_Posts'); //Recent Posts Widget 近期文章
  13.     unregister_widget('WP_Widget_Recent_Comments'); //Recent Comments Widget 近期评论
  14.     unregister_widget('WP_Widget_RSS'); //RSS Widget
  15.     unregister_widget('WP_Widget_Tag_Cloud'); //Tag Cloud Widget 标签云
  16.     unregister_widget('WP_Nav_Menu_Widget'); //Menus Widget 导航菜单
  17.     unregister_widget('WP_Widget_Custom_HTML') //Custom HTML Widget 自定义HTML
  18. }
  19. add_action('widgets_init', 'remove_default_widgets'); <br>
复制代码





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