上一节我们讲解了如何窗体化插件的第一部分,今天我们将继续第二部分,如何给我们创建的 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


沙发
支持1 反对
沙发???
支持 反对
好哇哇
支持 反对
没有抢到沙发
看来昨天睡晚了
新手学习中
支持 反对
沙发还N代。。。。。。。。打倒!
支持 反对
我今后做蒲团了
支持 反对
继续学习。
支持 反对
刚刚装了沙发六代,不会用,来这看看有什么介绍没
支持 反对
好文章,不过我似乎得先补点PHP
支持 反对
奇怪,这篇留言怎么编号是“1”呢?
支持 反对