使用了一段时间的wordpress , 发现很多功能需要自己写。于是,就开始了学习怎么在wp上面编写一款插件,
在这里和大家分享下。纯属新手制作。不妥之处,敬请指教。

在wordpress上制作一款插件-新乡seo|网站优化,网站建设_微信公众号:zeropython—昊天博客

首先;制作wp插件需要注意一下几点

  1. 给你的插件起个有意义的名字,让人一看就知道你的插件是做什么用的。这个名字最好是唯一的,因为网络上很多wp 插件,为了区分哪个是你的作品,你最好给它起个‘特殊’的名字
  2. 在插件的代码里面最好包含详细的注释,这样对你以后维护起这个插件是非常有利的,而且,如果你的作品是优秀的,很多人会渴望能读懂你的代码,甚至在你的代码上面二次开发,这时你的代码注释就显得十分重要。
  3. 对wp还有人用的版本测试一遍。以兼容多个版本。

新建一个插件

在wp-content/plugins 目录下新建一个文件夹,以你的插件名字命名

标准插件信息

目录中可以有各种的css javascript html 图片 等等文件,但是最主要的还是要有一个主php文件

插件的主文件顶部必须包括一个标准插件信息头。WordPress通过标准信息头识别插件的存在,并把她加入到控制面板的插件管理页面,这样插件才能激活,载入插件,并运行里面的函数;如果没有信息头,插件将无法激活和使用。标准信息插件头的格式为:

标准信息头至少要包括插件名称,这样WordPress才能识别你的插件。其他信息将显示在控制面板插件管理页面中。标准插件信息对各行顺序没有要求。

这样的升级机制能够正确地读出你的插件版本,建议你选择一个格式的版本号,不同版本之间,并坚持下去。例如,x.x中或x.x.x或xx.xx.xxx

注意:文件必须是 UTF-8 格式!

 

Readme文件

如果你想将你的插件发布到http://wordpress.org/extend/plugins/, 你必须在插件包中建立一个标准格式的readme.txt文件. 文件格式参见http://wordpress.org/extend/plugins/about/readme.txt.

你可以访问http://wordpress.org/extend/plugins/about/readme.txt 查看如何去格式化自述文件,或者访问http://generatewp.com/plugin-readme/ 来使用文档自动生成器

需要注意的是,WordPress是通过自述文件来判断这个插件是处于“必要”还是“测试”状态的。

版权信息

通常我们还要用一个LICENSE.txt 插件的许可证信息。大多数插件使用GPL或GPLCompatibleLicenses许可。如果使用GPL许可,可以参考下一个标准的LICENSE 怎么写

编写插件

理解wordpress插件钩子

我们的插件一般需要用一个或多个wordpress 的钩子来关联我们的插件到wordpress核心程序中去,来完成我们插件实现的功能,插件钩子的运行机理是,当WordPress运行到不同阶段,WordPress会检查当前阶段是否注册了插件函数,如果是,那么函数将被执行。通过执行插件函数改变了WordPress的默认功能。

比如我们做一个在文章最后面添加一个文章的版权信息时。wordpress程序将文章显示到浏览器前会检查是否有插件注册了一个名字为 the_content的钩子。如果有的话,那么。就会将文章传递到这个钩子的回调函数中去。那么,我们可以在这个回调函数中处理这个文章,在文章的最后面添加一行我们的版权信息。从而实现我们插件功能。

wordpress 核心钩子插件有两个。

其中$hooknane 是钩子的名字。在需要用到这个钩子的地方使用,如 the_content();

$callbackfunction 回调函数名。实现这个钩子功能的函数

来看看这两个核心功能的定义

至于add_action 似乎和add_filter 没有什么区别,只是返回了add_filter函数,并没有添加什么新的处理。

add_action 和 add_filter 函数的调用

参数:
$tag

(字符串)(必需)连接到$function_to_add的过滤器名称

默认值:None

$function_to_add

(回调)(必需)应用过滤器时被调用函数的名称

默认值:None

$priority

(整数)(可选)用于规定函数被执行的顺序,函数与特定动作关联。较小的数字匹配较早的执行,同等优先级的函数按加入action的顺序被执行。

默认值:10

$accepted_args

(整数)(必需)函数所接受参数的数量。在WordPress 1.5.1及之后版本中,连接的函数可吸收其它在调用do_action() 或 apply_filters()时设置的参数。

默认值:None

用户还需要为过滤器回调时函数的命名空间提供一个指示器,如:

好,主要功能函数就介绍到这里。接下来,用代码编辑器打开copyright.php 文件

编写版权信息

保存文件后,在wordpress 后台可以自动检测到插件

在wordpress上制作一款插件-新乡seo|网站优化,网站建设_微信公众号:zeropython—昊天博客

点击启用。你的插件就开始工作了。

到这里,一个wordpress插件正常工作了,但是他没有提供任何功能

而我们要让他实现在每一篇文章后面添加上文章的版权信息。

插件功能编写

这个插件需要实现两个功能

  • 插件自动为每个单篇阅读的文章最后面添加文章版权信息
  • 插件要在后台可以自定义输出的版权信息

首先。当用户启用插件,后台功能栏中需要显示这个插件设置

用户停用插件时则移除这个设置项

使用 wordpress 的 register_activation_hook 和 register_deactivation_hook 函数

这样。我们启用这个插件的时候,就会想数据库插入一个记录。记录着默认的版权文字信息

插件还要求可以在后台更改这个版权信息的。

要实现这个,添加以下代码:

这样,在文章单页中就能够显示版权信息了

在wordpress上制作一款插件-新乡seo|网站优化,网站建设_微信公众号:zeropython—昊天博客

wordpress插件制作

也可以在后台设置要显示的文字信息了

在wordpress上制作一款插件-新乡seo|网站优化,网站建设_微信公众号:zeropython—昊天博客