wordpress小工具

register_sidebar()

注册一个单独的侧边栏区域和返回ID,供 “widgets_init” 钩子调用。

语法结构

<?php register_sidebar( $args ); ?>

参数

// args 字符串/数组(可选)创建基于“name”和“id”的侧边栏。 默认值: None
// name – 侧边栏的名字(默认是 ‘Sidebar’ 加 数字 ID)
// id – 侧边栏 ID,必须全部小写,不带空格(默认是一个自动递增的数字 ID)
// description – 用来说明侧边栏是什么,在哪里显示的文字。会在小工具管理界面显示。(默认为  空)
// class – 分配到小工具 HTML输出 中的CSS选择器名字(默认为空)
// before_widget – 在每个小工具前面输出的 HTML代码(默认: ‘<li id="%1$s"class="widget %2$s">’)注:使用sprintf的变量替换
// after_widget – 在每个小工具后面输出的 HTML代码(默认: "</li>\n")
// before_title – 在标题前输出的 HTML代码(默认: <h2 class="widgettitle">)
// after_title – 在标题后输出的 HTML代码 (默认:"</h2>\n")

实例

function custom_widgets_init()
{
    register_sidebar(array(
        'name'          => '侧边栏',
        'id'            => 'sidebar',
        'description'   => '侧边栏内容区域',
        'before_widget' => '<section id="%1$s" class="widget %2$s">',
        'after_widget'  => '</section>',
        'before_title'  => '<h2 class="widget-title">',
        'after_title'   => '</h2>',
    ));
}
add_action('widgets_init', 'custom_widgets_init');

register_widget()

register_widget()函数是用来注册一个新的小工具。

语法结构

<?php register_widget( $widget_class ) ?>

参数

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

实例

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

    public function form( $instance ) {
        // Output admin widget options form
        $defaults = array(
            'depth' => '-1'
        );
        $depth = $instance[ 'depth' ];
        $link = $instance[ 'link' ];
        $title = $instance['title'];
        // markup for form
        ?>
        <p>
            <label for="<?php echo $this->get_field_id('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>
        <p>
            <label for="<?php echo $this->get_field_id( 'depth' ); ?>">填写图片地址</label>
            <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 ); ?>">
        </p>
        <p>
            <label for="<?php echo $this->get_field_id( 'link' ); ?>">填写图片链接</label>
            <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 ); ?>">
        </p>
        <?php
    }
    public function update( $new_instance, $old_instance ) {
        // Save widget options
        $instance = $old_instance;
        $instance[ 'depth' ] = strip_tags( $new_instance[ 'depth' ] );
        $instance[ 'link' ] = strip_tags( $new_instance[ 'link' ] );
        $instance['title'] = strip_tags($new_instance['title']);
        return $instance;
    }
}
function register_widgets() {
    register_widget( 'ProductWidget' );
}
add_action( 'widgets_init', 'register_widgets' );

unregister_widget()

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

语法结构

<?php unregister_widget( $widget_class ) ?>

参数

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

实例

function remove_default_widgets() {
    unregister_widget('WP_Widget_Pages'); //Pages Widget 页面
    unregister_widget('WP_Widget_Calendar'); //Calendar Widget 日历
    unregister_widget('WP_Widget_Archives'); //Archives Widget 文章归档
    unregister_widget('WP_Widget_Media_Audio '); //Audio Player Media Widget 视频
    unregister_widget('WP_Widget_Media_Image '); //Image Media Widget 画廊
    unregister_widget('WP_Widget_Media_Video'); //Video Media Widget 音频 
    unregister_widget('WP_Widget_Meta'); //Meta Widget 功能
    unregister_widget('WP_Widget_Search'); //Search Widget 搜索
    unregister_widget('WP_Widget_Text'); //Text Widget 文本
    unregister_widget('WP_Widget_Categories'); //Categories Widget 分类目录
    unregister_widget('WP_Widget_Recent_Posts'); //Recent Posts Widget 近期文章
    unregister_widget('WP_Widget_Recent_Comments'); //Recent Comments Widget 近期评论
    unregister_widget('WP_Widget_RSS'); //RSS Widget 
    unregister_widget('WP_Widget_Tag_Cloud'); //Tag Cloud Widget 标签云
    unregister_widget('WP_Nav_Menu_Widget'); //Menus Widget 导航菜单
    unregister_widget('WP_Widget_Custom_HTML') //Custom HTML Widget 自定义HTML
}
add_action('widgets_init', 'remove_default_widgets');

函数register_widget和函数unregister_widget来自于:http://www.xuxiaoke.com/wpfunc/98.html

 788 total views,  6 views today

Revisions

Comments are closed.