插件制作准备工作
首先我们在\wp-content\plugins目录下添加一个文件夹叫做”My-Mood”,在文件夹中添加一个叫做index.php的主文件,这个是插件的主文件,文件的开始需要一些命名的格式:如下面的代码
<!--?php <br ?--> /* Plugin Name: My Mood Plugin URI: Description: 一个心情发布插件 Version: 1.0 Author: 周良博客 Author URI: License: GPL */ ?>
Plugin Name 代表了插件的名字。
Plugin URI 代表的是插件的发布地址。
Description 代表的是关于这个插件的描述。
Version 代表了版本好,第一个版本使用1.0,如果你的插件有更新,就依次更改这个版本参数。
Author 代表插件作者的名字。
Author URI 代表作者的主页。。
License 代表了插件的License,如果你是开源的就使用GPL,关于License的参数可以百度或者Google查询,这里不再过多的篇幅叙述。
插件的初始化安装
插件不仅仅是样式的改变,通常我们会加入新的表,那么新加的表我就是通过插件的安装函数来完成的,我们继续在index.php中加入如下的代码:
<!--?php <br ?--> //激活动作 register_activation_hook( __FILE__, 'my_mood_install'); function my_mood_install() { // 启用时要做的事情 global $wpdb; $table_name = $wpdb->prefix . "mood"; $charset_collate = $wpdb->get_charset_collate(); $sql = "CREATE TABLE $table_name ( id mediumint(9) NOT NULL AUTO_INCREMENT, createdon datetime DEFAULT '0000-00-00 00:00:00' NOT NULL, publishedon datetime DEFAULT '0000-00-00 00:00:00' NOT NULL, status int NOT NULL, mood int NOT NULL, text text NOT NULL, address varchar(55) DEFAULT '' NOT NULL, UNIQUE KEY id (id) ) $charset_collate;"; require_once( ABSPATH . 'wp-admin/includes/upgrade.php' ); dbDelta( $sql ); } ?>
如上面代码的注释,我们通过register_activation_hook激活动作来完成插件的安装,激活动作通过参数my_mood_install,找到名为my_mood_install的函数执行,这个动作会在插件激活的时候执行。
我们通过my_mood_install函数创建了一张名为”mood”的表,数据库表的创建是通过Wordpress的dbDelta函数来执行sql语句完成的,要想使用此函数需要先引入wp-admin/includes/upgrade.php文件。
通过上面的代码我们就运用Wordpress内置的方法创建了一张给mood插件存储数据的表。
插件卸载
既然Wordpress有安装也一定会有卸载。Wordpress插件的卸载方法是通过一个叫做uninstall.php的固定命名文件来执行的,在插件根目录下建一个名叫uninstall.php的文件,代码内容如下所示:
<!--?php <br ?--> //卸载动作 my_mood_uninstall(); function my_mood_uninstall() { // 执行内容 global $wpdb; $table_name = $wpdb->prefix . "mood"; $wpdb->query("DROP TABLE IF EXISTS " . $table_name); } ?>
通过Wordpress的$wpdb->query来执行sql,删除我们安装时的创建的表,这样就删除一切与该插件相关的内容了。
给插件添加后台管理菜单
如下面的代码:
<!--?php <br ?--> //添加菜单 add_action( 'admin_menu', 'my_mood_create_menu' ); function my_mood_create_menu() { global $my_settings; $my_mood_settings=add_menu_page( "My Mood", "My Mood", "manage_options", "my-mood", "test" ); } ?>
通过上面的代码我们就可以为插件添加一个菜单。方法通过add_action( ‘admin_menu', ‘my_mood_create_menu' )添加一个菜单而菜单具体的页面则是通过参数来绑定的,如上面的方法是传入了叫做”test”的参数,因此当点击这个”My Mood”的菜单的时候就会去寻找叫做”test”的方法进行样式的输出,我们给出test方法
<!--?php <br ?--> function test(){ global $wpdb; $table_name = $wpdb->prefix . "mood"; $fivesdrafts = $wpdb->get_results( " SELECT id, createdon, publishedon,status,mood,text,address FROM $table_name ORDER BY createdon DESC " ); ?> <div>foreach ( $fivesdrafts as $fivesdraft ) { ?> } ?> <table> <thead> <tr> <th>发布内容</th> <th>现在所在的</th> <th>心情</th> <th>创建日期</th> <th>操作</th> </tr> </thead> <tfoot> <tr> <th>发布内容</th> <th>现在所在的</th> <th>心情</th> <th>创建日期</th> <th>操作</th> </tr> </tfoot> <tbody> <tr> <td><input type="text" value="" placeholder="输入你的心情" /></td> <td><input type="text" value="" placeholder="输入现在所在地" /></td> <td><label>高兴:<input checked="checked" type="radio" value="0" /></label> <label>一般:<input type="radio" value="1" /></label> <label>悲伤:<input type="radio" value="2" /></label> <label>忧虑:<input type="radio" value="3" /></label> <label>其他:<input type="radio" value="4" /></label></td> <td></td> <td><a>添加</a></td> </tr> <!--?php <br ?--> <tr> <td><input type="text" value="'<?php" />text; ?>'/></td> <td><input type="text" value="'<?php" />address; ?>'/></td> <td><label>高兴:<input type="radio" />mood==0?'checked=checked':''; ?> value="0"></label> <label>一般:<input type="radio" />mood=='1'?'checked=checked':''; ?> value="1"></label> <label>悲伤:<input type="radio" />mood==2?'checked=checked':''; ?> value="2"></label> <label>忧虑:<input type="radio" />mood==3?'checked=checked':''; ?> value="3"></label> <label>其他:<input type="radio" />mood==4?'checked=checked':''; ?> value="4"></label></td> <td></td> <td><a>保存</a><a>删除</a></td> </tr> <!--?php <br ?--></tbody> </table> </div> <!--?php <br ?--> } ?>