WordPress的插件开发详细实战
针对目前非常流程的网站开发框架WordPress, 网络中充斥着各种各样的开发教程, 但感觉都是千篇一律, 对于想快速入手开发WP插件的爱好者来说, 或者急想找到一个能详细解读WP插件开发的实战, 我也是一个爱好WP开发的技术员, 现仅此把自己对插件开发的一些经验和大家分享, 希望能给广大WordPress爱好者一些帮助.
对于在网络上关于WordPress开发的一些教程介绍的一些插件的一些概念性的解释等, 这里就不再说说明, 这里仅把关于开发一个完整插件的一些程序接口等做解释.
一. WP的插件包结构普通为:
- css: 用于存放插件的样式表.
- images: 用于存放插件的图片文件.
- js: 用于存放插件的javascript等客户端脚本文件.
- language: 用于存放插件的语言包文件, 一般包括.mo和.po 两个文件.
- 插件入口文件: 和插件的文件夹的名称一致, 以插件的功能为命名标准为宜.
- help: 用于存放插件的辅组类库.
二. 插件入口文件的组成
- 插件的信息, 包括插件名称, URL, 插件功能描述, 开发作者, 版本和版权等信息, 开发一个插件, 做好能注释以上详细信息, 这也是一个针对WP开发插件的良好习惯. 例如如下:
Plugin Name: Google APIPlugin URI: https://www.ccjk.com
Description: Use this plugin to be tested.
Author: Your Name
Version: 2.0.4
Author URI: https://www.ccjk.com
Copyright 2012 CCJK
- 加载语言包, 例如:
load_plugin_textdomain( ‘test’, false, dirname( plugin_basename( __FILE__ ) ) . ‘/languages’ );
- 插件的初始化在哪个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’);} - 插件在后端菜单的初始化, 例如:
//在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插件的开发过程.
对于一个比较复杂功能的插件, 可以把要实现的功能写在入口文件, 也可以写在其他文件, 或以类库形式用对象的方式来实现插件的功能, 这个主要是看开发人员自己对插件的要求.
Need a translation service?
Please enter your personal details and we will contact you shortly
Words translated by CCJK
146,096,379Over 95% of our clients recommend our language services to others