针对目前非常流程的网站开发框架WordPress, 网络中充斥着各种各样的开发教程, 但感觉都是千篇一律, 对于想快速入手开发WP插件的爱好者来说, 或者急想找到一个能详细解读WP插件开发的实战, 我也是一个爱好WP开发的技术员, 现仅此把自己对插件开发的一些经验和大家分享, 希望能给广大WordPress爱好者一些帮助.

对于在网络上关于WordPress开发的一些教程介绍的一些插件的一些概念性的解释等, 这里就不再说说明, 这里仅把关于开发一个完整插件的一些程序接口等做解释.

一. WP的插件包结构普通为:

  1. css: 用于存放插件的样式表.
  2. images: 用于存放插件的图片文件.
  3. js: 用于存放插件的javascript等客户端脚本文件.
  4. language: 用于存放插件的语言包文件, 一般包括.mo和.po 两个文件.
  5. 插件入口文件: 和插件的文件夹的名称一致, 以插件的功能为命名标准为宜.
  6. help: 用于存放插件的辅组类库.

二. 插件入口文件的组成

  1. 插件的信息, 包括插件名称, URL, 插件功能描述, 开发作者, 版本和版权等信息, 开发一个插件, 做好能注释以上详细信息, 这也是一个针对WP开发插件的良好习惯. 例如如下:
    Plugin Name: Google APIPlugin URI: https://www.ccjk.comDescription: Use this plugin to be tested.Author: Your Name

    Version: 2.0.4

    Author URI: https://www.ccjk.com

    Copyright 2012 CCJK

  2. 加载语言包, 例如:load_plugin_textdomain( ‘test’, false, dirname( plugin_basename( __FILE__ ) ) . ‘/languages’ );
  3. 插件的初始化在哪个WP钩子上, 例如是在WP的后端初始化时初始化这个插件:add_action(‘admin_init’, ‘test_register’);//自定义回调函数, 可以用来引入该插件的样式表等等资源文件
    function test_register()
    {
    register_setting(‘settingpage_sample’, ‘settingpagesample’);
    //添加样式表
    wp_enqueue_style(‘settingpage_sampe’, plugin_dir_url(__FILE__).’css/css.css’);
    //添加js
    wp_enqueue_script(‘settingpage_sampe’, plugin_dir_url(__FILE__).’js/js.js’);}
  4. 插件在后端菜单的初始化, 例如://在WP后端菜单初始化的时候,执行add_menu()函数,即是把add_menu()函数挂在admin_menu钩子上
    add_action(‘admin_menu’, ‘add_menu’);//自定义回调函数
    function add_menu()
    {
    //add_menu_page(‘test’, ‘test’, ‘manage_options’, ‘test-handle’, ‘test_index’);
    //添加菜单到WP的Setting菜单里面为子菜单, 并把回到函数(即参数settingpage_sample_index)中输出的内容显示在该子菜单的页面里面
    add_options_page(‘SettingPage Sample’, ‘SettingPage Sample’, ‘manage_options’, ‘settingpage-sample’, ‘settingpage_sample_index’);
    }//自定义回调函数
    function settingpage_sample_index()
    {
    … //实现插件的功能.
    }

上面是一个WP插件的程序框架, 理解上面的各个函数和钩子的意思, 那就完全可以理解WP插件的开发过程.
对于一个比较复杂功能的插件, 可以把要实现的功能写在入口文件, 也可以写在其他文件, 或以类库形式用对象的方式来实现插件的功能, 这个主要是看开发人员自己对插件的要求.