自己动手写 WordPress 插件 2b:窗体化插件 b
上一节我们讲解了如何窗体化插件的第一部分,今天我们将继续第二部分,如何给我们创建的 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']);
?>
widget_sofa 函数中的 echo $before_widget;
中插入以下几行:
$sofa_options = get_option('widget_sofa'); $title = $sofa_options['title']; if ( empty($title) ) $title = '最沙发的人'; [/code] 这段代码是获取用户设置的标题,如果没有设置,则显示默认的“最沙发的人”。 好了,这节到此为止,下一节我们讲解 WordPress 的 API。请保持关注。沙发三代下载:wp-sofa-3.0.zip