首页 » WordPress 插件 » 自己动手写 WordPress 插件:窗体化插件 2

自己动手写 WordPress 插件:窗体化插件 2

November 12th, 2007 at 12:58am 雪山飞猪 浏览: 1,681

上一节我们讲解了如何窗体化插件的第一部分,今天我们将继续第二部分,如何给我们创建的 Widget 创建选项 Panel。

我想使用沙发二代的同学已经感觉现在很轻松了,如果主题支持,根本不用修改模板就能调用该插件。但是最求完美的同学会发现默认输出的 Title 是“最沙发的人”。有些比较追求个性的同学总是希望自己定义标题的。好吧,这一节,我们就完成这部分同学的愿望,能够自定义标题。并推出沙发三代!

如何自定义标题呢?其实就是在 Widget 能够提供一个选项的界面,让用户自己输入标题。好吧,搜索下或者看看别人的插件(偶经常这样写插件的,如果你的插件因此被我偷师了,算你倒霉!嘿嘿!),发现是通过 register_widget_control 这个 hook 绑定的。这样事情就变得很简单了。我们把选项的数据存储到一个名字叫做 widget_sofa option 中即可。修改如下:

在昨天创建的 widget_sidebar_sofa 的函数的最后中添加如下代码:

function widget_sofa_options() {
	$sofa_options = $new_sofa_options = get_option('widget_sofa'); //获取数据库中的 widget_sofa
	if ( $_POST["sofa_submit"] ) { //如果提交更新
		$new_sofa_options['title'] = strip_tags(stripslashes($_POST["sofa_title"]));
		if ( $sofa_options != $new_sofa_options ) { //如果有更新
			$sofa_options = $new_sofa_options;
			update_option('widget_sofa', $sofa_options);
		}
	}
	$title = attribute_escape($sofa_options['title']);
?>
	<p><label for="wp_sofa_title"><?php _e('Title:'); ?> <input style="width: 250px;" id="sofa_title" name="sofa_title" type="text" value="<?php echo $title; ?>" /></label></p>
	<input type="hidden" id="sofa_submit" name="sofa_submit" value="1" />
<?php
}

register_widget_control('WP-Sofa', 'widget_sofa_options', 300, 90);

上面这段代码就是创建一个 Widget 选项的界面。代码非常简单,也做注释,我这里也不多说了。

然后昨天的创建的 widget_sofa 函数中的 echo $before_widget; 中插入以下几行:

<?
$sofa_options = get_option('widget_sofa');
$title = $sofa_options['title'];
if ( empty($title) ) $title = '最沙发的人';

这段代码是获取用户设置的标题,如果没有设置,则显示默认的“最沙发的人”。

好了,这节到此为止,下一节我们讲解 WordPress 的 API。请保持关注。沙发三代下载:wp-sofa-3.0.zip

作者:雪山飞猪
原文链接:自己动手写 WordPress 插件:窗体化插件 2
我爱水煮鱼版权所有,转载时必须以链接形式注明作者和原始出处及本声明。

17fav 收藏本文

9 条评论 添加你的评论 和主题无关问题请移步到这里发表

  • 1. 胖逗逗  |  November 12th, 2007 at 1:00 am

    沙发

    [回复该留言]

  • 2. kiki  |  November 12th, 2007 at 1:01 am

    沙发???

    [回复该留言]

  • 3. 胡戈戈  |  November 12th, 2007 at 2:38 am

    好哇哇

    [回复该留言]

  • 4. lirui0073  |  November 12th, 2007 at 9:45 am

    没有抢到沙发

    看来昨天睡晚了

    新手学习中

    [回复该留言]

  • 5. underone  |  November 12th, 2007 at 1:58 pm

    沙发还N代。。。。。。。。打倒!

    [回复该留言]

  • 6. lirui0073  |  November 12th, 2007 at 11:25 pm

    我今后做蒲团了

    [回复该留言]

  • 7. hi  |  November 17th, 2007 at 3:16 pm

    继续学习。

    [回复该留言]

  • 8. 痴情的猪  |  February 18th, 2008 at 3:29 am

    刚刚装了沙发六代,不会用,来这看看有什么介绍没

    [回复该留言]

发表评论 和主题无关问题请移步到这里发表

必须

必填,打死不公开

:mrgreen: :neutral: :twisted: :arrow: :shock: :smile: :???: :cool: :evil: :grin: :idea: :oops: :razz: :roll: :wink: :cry: :eek: :lol: :mad: :sad: :!: :?:

WordPress MU 1.3 简体中文(第一版)发布! 本人极度凶悍


订阅

本站推荐

分类

Clicki