以下代码根据插件精简所得,通过代码行间的简单注释,可以作为开发WordPress插件的一个查考。类中所有方法的名称不受WordPress约束,均为自行所命之名。
/* Plugin Name: ShuiFou Plugin URI: http://www.chibl.com/shuifou Description: 睡否? Version: 0.3 Author: Miracle Author URI: http://www.chibl.com License: GPLv2 */ if(!class_exists('ShuiFou')) : class ShuiFou { var $id; var $name; var $version; var $options; //构造方法,可在此初始化插件常量 function ShuiFou() { $this->id = 'com.chibl.shuifou'; $this->name = 'ShuiFou'; $this->version = '0.3'; } //插件的入口方法,类实例化后将调用此方法 function init() { $this->options = get_option($this->id); //如果当前访问的是后台管理页面 if(is_admin()) { //在WordPress后台添加插件管理菜单 add_action('admin_menu', array(&$this,'menu')); } else { //根据需要设置钩子 add_action('init', array(&$this, 'action')); add_action('wp_head', array(&$this, 'display')); } //添加小工具 add_action('widgets_init', array(&$this, 'widget')); } //在后台管理 设置 栏添加名为 ShuiFou 的菜单,链向插件配置页 function menu() { add_options_page($this->id, $this->name, 'manage_options', __FILE__, array(&$this, 'config')); } //插件配置页内容 function config() { } //爱干嘛干嘛 function action() { } //访问指定ID的页面时,修改页面内容 function display() { if(is_page($this->options['pageid'])) { add_filter('the_content', array(&$this,'page')); } } function page($content) { $content .= '追加内容……'; return $content; } //注册小工具 function widget() { include_once 'widget.php'; register_widget('ShuiFouWidget'); } //安装插件时将执行此方法,可在此创建或更新插件所需持久化的数据 function install() { } //删除插件时将执行此方法,可在此删除安装插件时所创建的数据表及数据 function uninstall() { } } endif; if(class_exists('ShuiFou')) { $sf = new ShuiFou(); //实例化 register_activation_hook(__FILE__, array(&$sf, 'install')); //指定安装插件时所要执行的方法 register_deactivation_hook(__FILE__, array(&$sf, 'uninstall')); //指定删除插件时所要执行的方法 $sf->init(); }