wordpress自定义小工具(widget)详解2

十一月 09
磊子 2011年 7 条评论

今天接着昨天的文章继续为大家说下wordpress 自定义小工具(widget)的方法,如果大家没看过上篇的可以点击这里 看一下,上篇说到的自定义小工具(widget) 的第一种方法,但是它的不足之处是只能用一次。今天为大家分享第二种方法,这个第二种方法,官网已经给出了基本的代码结构,只需我们往里面加东西。结构如下:

class My_Widget extends WP_Widget { //继承了 WP_Widget 这个类来创建新的小工具(Widget)
	function My_Widget() {
		// 主要内容方法
	}

	function form($instance) {
		 // 给小工具(widget) 添加表单内容
	}

	function update($new_instance, $old_instance) {
		 // 进行更新保存
	}

	function widget($args, $instance) {
		// 输出显示在页面上
	}

}
register_widget('My_Widget');

我们可以使用上面的这个代码结构来写一个小例子。代码是这样的:

<?php 

class My_Widget extends WP_Widget {

	function My_Widget()
	{
		$widget_ops = array('description' => '一个简单的小测试');
		$control_ops = array('width' => 400, 'height' => 300);
		parent::WP_Widget(false,$name='一个简单的Widget',$widget_ops,$control_ops);  

                //parent::直接使用父类中的方法
                //$name 这个小工具的名称,
                //$widget_ops 可以给小工具进行描述等等。
                //$control_ops 可以对小工具进行简单的样式定义等等。
	}

	function form($instance) { // 给小工具(widget) 添加表单内容
		$title = esc_attr($instance['title']);
	?>
	<p><label for="<?php echo $this->get_field_id('title'); ?>"><?php esc_attr_e('Title:'); ?> <input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo $title; ?>" /></label></p>

	<?php
    }
	function update($new_instance, $old_instance) { // 更新保存
		return $new_instance;
	}
	function widget($args, $instance) { // 输出显示在页面上
	extract( $args );
        $title = apply_filters('widget_title', empty($instance['title']) ? __('小测试') : $instance['title']);
        ?>
              <?php echo $before_widget; ?>
                  <?php if ( $title )
                        echo $before_title . $title . $after_title; ?>
              <?php echo $after_widget; ?>

        <?php
	}
}
register_widget('My_Widget');
?>

将这段代码放到你主题的functions.php文件中,这样一个简单的小工具(widget)就做好了,而且可以多次使用。大家快来试试吧!

后台效果图:
自定义小工具效果显示

» 版权所有©转载必须以链接形式注明作者和原始出处:磊子的博客 » wordpress自定义小工具(widget)详解2
» 地址:( Ctrl+C 复制 )
» 如果对本站感兴趣,请到网站右下方订阅本站,将为你带来更多精彩和实用的文章
» 如果您对这篇文章感兴趣,不妨小小的 捐助(Donate)一下博主吧,不管多少都是对博主最大的支持和鼓励哟,博主-磊子感谢大家的支持!!!

7 条留言 其中:访客:4 条, 博主:3 条

  1. 测试说:

    怎么用小工具添加图片并在前台输出呢?

  2. 胡倡萌说:

    最近也在折腾小工具 学习中……
    ps 你的网站头部 部分乱码 检查一下文件格式吧

  3. 高高说:

    看了你写的插件教程,由于工作原因在wordpress的时间太少了,感谢分享。
    请教一个问题,这么一大堆的代码都写到functions.php中,感觉很不爽,况且里面东西太多必定要拖慢主题的整体效率,能不能把代码单独出来在functions.php中只添加引用代码? :wink:

    • 磊子说:

      单独肯定是可以! 放到一个文件里面,然后用include_once进行导入。PHP有导入的函数。单独出来主要是为了便于管理和修改。至于效率,其实没有多大影响的。 :razz:

  4. 说:

    博主,链接错了,链到你本地去的。

说点什么吧




wireless earbuds moscow mule mugs bluetooth speakers waterproof camera best wireless earbuds best vacuum cleaner best drugstore foundation best dishwasher best waist trainer wireless headphones best vacuum 0594918 best bluetooth earbuds waterproof bluetooth speaker tattoo cover up action camera
订阅本站