自己动手写 WordPress 插件:后台选项

自从上一次谈到使用 WP-Cron 来进一步提高插件的效率之后,差不多有一个月没有跟新我这个插件教程了。好了今天介绍最后一篇:增加后台选项,以及其他的一些参考资料。

如果插件是给自己用,OK,可以把所有的地方都写死,不用很多参数,但是全世界人民对插件的需求是完全不同的,很多人是不懂代码,更多人是希望在后台简单点两下就能够配置出来自己要的效果出来。好吧,今天就给大家讲讲这方面的东东:

在 WordPress 中,创建后台选项的 API 是:
add_options_page(page_title, menu_title, access_level/capability, file, );

其中 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 &raquo;" /></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 插件 WordPress 教程 沙发

本人擅长Ai、Fw、Fl、Br、Ae、Pr、Id、Ps等软件的安装与卸载,精通CSS、JavaScript、PHP、ASP、C、C++、C#、Java、Ruby、Perl、Lisp、Python、Objective-C、ActionScript、Pascal等单词的拼写,熟悉Windows、Linux、OS X、Android、iOS、WP8等系统的开关机。

通过下面的方式来联系我们:

电邮:138762189@qq.com

联系QQ:点击这里给我发消息

官方站:www.tadke.com

※ ※ 联系请加我的企鹅号 ※※

※ ※技术支持请微信联系站长 ※※

Copyright © 2023 Tadke.com. 琼ICP备20000547号