WordPress插件容许你对原有的网站进行修改和加强功能,而没必要修改WordPress的核心程序,本文就简单介绍一下如何开发一个本身的Wordpress插件。php
全部的Wordpress插件都存放在网站的wp-contentplugins目录下,每个插件占用一个目录。你首先要想好本身的插件的名字,而后创建一个属于本身插件的目录。程序员
一个好的习惯在是插件目录下创建一个空的index.php,这个文件的做用的防止网站输出这个目录的文件。事实上不少程序员也这样作了,你常常能够看到网站目录下有个30B的index.php,里面只写了一句:Silence is golden.数据库
首先创建一个和插件目录名相同的php文件,在文件头添加一些标准插件信息:浏览器
<php /* Plugin Name: 插件名 Plugin URI: 插件的介绍或更新地址 Description: 插件描述 Version: 插件版本,例如 1.0 Author: 插件做者名称 Author URI: 插件做者的连接 License: 许可证,如GPL2 */
例如:函数
<php /* Plugin Name: Codlr Plugin URI: http://codlr.com Description: Demo for codlr Version: 1.0 Author: Pnuts Author URI: http://pnuts.cc/ License: GPL2 */
建立好后,就能够在Wordpress的后台控制面板看到新增长的插件了:网站
固然这样插件目前尚未任何功能,咱们能够尝试增长一些功能。spa
WordPress的钩子机制插件
要为Wordpress插件增长功能,首先要了解一下Wordpress的钩子机制。文章最前面就说过,Wordpress插件增长网站功能时不会修改Wordpress的核心代码,这个正是靠钩子来实现的:Wordpress对不一样阶段定义了不少钩子,插件将自身的函数注册到相关的钩子上,当WordPress运行到某个阶段,它会检查当前阶段是否有插件注册了函数,若是是,那么函数将被执行。code
例如,在WordPress在把文章的标题发送到浏览器前,会检查是否有插件函数注册了“the_title”的钩子。若是是,标题文本将会传送到注册函数中,插件函数变能够对标题内容进行修改,而函数的返回值最终将会被传送给浏览器。图片
要想在钩子上挂载一个函数,须要使用add_action方法,关于add_action的定义是这样的:
add_action( $tag, $function_to_add, $priority, $accepted_args ); ?>
其中$tag和$function_to_add是必选的,分别指定了钩子的名字和挂载的函数。而$priority和$accepted_args为可选参数,类型都为整数。$priority用于指定与全部挂载函数的执行顺序。数字越小,执行越早,具备相同优先级的函数在它们被添加到动做的顺序执行,默认为10。$accepted_args为挂钩函数所接受的参数数量,默认为1。
下面给了一个简单的例子,展现如何经过钩子将标题中的英文字母所有转换成大写:
add_action('the_title', function($title) { return strtoupper($title); });
WordPress的钩子不少,这里不能一一介绍,在Wordpress的官方上有详细的说明,惋惜没有中文的:Plugin API/Action Reference。
WordPress的选项机制
WordPress的另外一个重要机制是它的选项机制,它容许插件将一些特定属性保存在数据库中(wp_options表),随时能够更新或查询。它的使用方法很简单:
//添加一个选项 add_option($name, $value, $deprecated, $autoload);
$name(必选)和$value(可选,默认为空)为字符串,分别表示选项的名字和值。$deprecated已通过时了,再也不被Wordpress使用了。$autoload(可选)能够为’yes’或’no’,默认为’yes’,表示这个option是否会被get_alloptions函数自动检索。
另外两个函数分别用来或取和更新选项的:
//更新选项 update_option($option_name, $newvalue); //获取选项 get_option($option);