自己动手写 WordPress 插件:后台选项
December 22nd, 2007 at 02:02am 雪山飞猪
自从上一次谈到使用 WP-Cron 来进一步提高插件的效率之后,差不多有一个月没有跟新我这个插件教程了。好了今天介绍最后一篇:增加后台选项,以及其他的一些参考资料。
如果插件是给自己用,OK,可以把所有的地方都写死,不用很多参数,但是全世界人民对插件的需求是完全不同的,很多人是不懂代码,更多人是希望在后台简单点两下就能够配置出来自己要的效果出来。好吧,今天就给大家讲讲这方面的东东:
在 WordPress 中,创建后台选项的 API 是:
add_options_page(page_title, menu_title, access_level/capability, file, [function]);
其中 page_title 为页面标题,menu_title 为菜单标题,access_level/capability 为访问这个选项的最低权限用户,file 这里为选项的唯一标示符,function 为用于显示页面内容的函数。
然后怎么样把后台的数据保存起来和在插件中调用呢?其实我们前面的教程中已经使用到了
WordPress 是通过 API update_option($option_name, $newvalue) 把数据保存和到数据库中,并通过 API get_option($option) 取出。
好了,现在已经了解清楚了原理,下面我们谈谈给我们的沙发插件添加什么选项,嗯,就大家问我的几个问题添加下选项吧。第一个是,有些博客是开放注册的博客,而前面的版本是不统计注册用户的沙发的,第二个是有些帅哥喜欢显示更多的沙发,恩就给他个机会显示更多的沙发。
首先我们在插件最后添加以下代码用于制作后台选项界面:
function wp_sofa_options(){ $message='更新成功'; if($_POST['update_sofa_option']){ $wp_sofa_exclude_saved = get_option("wp_sofa_exclude"); $wp_sofa_exclude = $_POST['wp_sofa_exclude_option']; if ($wp_sofa_exclude_saved != $wp_sofa_exclude) if(!update_option("wp_sofa_exclude",$wp_sofa_exclude)) $message='更新失败'; $wp_sofa_number_saved = get_option("wp_sofa_number"); $wp_sofa_number = $_POST['wp_sofa_number_option']; if($wp_sofa_number_saved != $wp_sofa_number) if(!update_option("wp_sofa_number",$wp_sofa_number)) $message='更新失败'; $wp_sofa_titles_saved = get_option("wp_sofa_titles"); $wp_sofa_titles = $_POST['wp_sofa_titles_option']; if($wp_sofa_titles_saved != $wp_sofa_titles) if(!update_option("wp_sofa_titles",$wp_sofa_titles)) $message='更新失败'; update_sofa(); echo '<div class="updated"><strong><p>'. $message . '</p></strong></div>'; } ?> <div class=wrap> <form method="post" action=""> <h2>沙发</h2> <fieldset name="wp_basic_options" class="options"> <table> <tr> <td valign="top" align="right">排除用户:</td> <td><input type="text" name="wp_sofa_exclude_option" value="<?php echo get_option("wp_sofa_exclude"); ?>" /> 输入需要排除用户的 ID,多个请用英文的 , 分开。</td> </tr> <tr> <td valign="top" align="right">个数:</td> <td><input type="text" name="wp_sofa_number_option" value="<?php echo get_option("wp_sofa_number"); ?>" /> 显示沙发的个数,尽量不要超过10个。</td> </tr> <tr> <td valign="top" align="right">沙发列表元素标题</td> <td><input type="text" name="wp_sofa_titles_option" value="<?php echo get_option("wp_sofa_titles") ?>" /> 显示沙发的个数,尽量不要超过10个。</td> </tr> </table> </fieldset> <p class="submit"><input type="submit" name="update_sofa_option" value="Update Options »" /></p> </form> </div> <?php } function wp_sofa_options_admin(){ add_options_page('wp_safa', '沙发', 5, __FILE__, 'wp_sofa_options'); } add_action('admin_menu', 'wp_sofa_options_admin');
然后在对前面的 update_sofa 程序进行相应的修改,这里就不再详细的叙述了。
本次插件下载:wp-sofa-6.0.zip。
至此,这个制作插件的教程结束,本来应该还有一篇关于插件如何创建独立的数据表,但是没有相关的经验,就不写了。这个教程写得很乱,但是基本上看下来对你制作插件还是有一定的帮助的。如果你有什么意见,欢迎提出来。
另外我还有写一篇总结的文章,并给你推荐一个更多制作插件的文章列表。
作者:雪山飞猪
原文链接:自己动手写 WordPress 插件:后台选项


分享到 Twitter

1. We | December 22, 2007 at 4:30 am | #
看着头晕,先学习一下。。。
[回复该留言]2. chada | December 22, 2007 at 6:58 am | #
看得懂一點點,繼續學習,以後再來看看
[回复该留言]3. evacuee | December 22, 2007 at 11:15 am | #
貌似很有难度,得好好学习一下,哈哈!
[回复该留言]4. xaoma | December 22, 2007 at 7:19 pm | #
看着晕那!努力学习一下!
[回复该留言]5. Awaken | August 27, 2008 at 1:35 am | #
其实可以用add_management_page\add_submenu_page 等等来把设置添加到不同的地方
[回复该留言]