WordPress插件开发详细教程

爱互联,爱技术,爱分享,自由草分享平台欢迎您!

WordPress 并非仅仅是一个简单的博客平台,同时也是一个功能极其强大并且有着无限扩展能力的 CMS 平台。现在不管是在国内还是国外,WordPress 都有着庞大的用户数量,而且这等用户数量也是其它博客平台难以匹敌的,一直以来也都有着数量巨大的 WordPress 爱好者为其开发主题和插件,借助于这些主题和插件,你几乎可以把 WordPress 配置成任何类型的站点。

我一直认为开发插件不是一件容易的事情,我也一直很佩服那些开发插件的大牛们,感谢他们的无私奉献。但是有时候,别人开发好的插件,并不一定完全适合每个人的需求,自己想去修改吧,又不敢动手。其实,只要我们能理解插件的工作机制,并且参考一下 WordPress 的官方文档,再多借助于搜索引擎,我们自己也能对那些插件进行一些修改,并且自己也可以开发出一些简单的插件。今天这片文章就来了解一下插件的工作机制,并且尝试写一个插件。

作为一个入门的练习,这个插件的功能将相当简单,要实现的功能仅仅是在博客正文页面的最底部加上一个段落,内容是版权声明,例如:“本站点所有文章均为原创,转载请注明出处!”,相信大家都见过很多博文底部都有这样的版权声明吧,他们都是在写文章的时候手工写上去的吗,肯定不是,而且很有可能是通过插件实现的。

在开始之前,需要注意三件事情

1、给插件取一个个性化的名字,越个性化越好,以防和其他插件重名冲突。

2、代码里面,一定要包含注释,不为自己,也要为想修改你代码的别人想想。

3、尽量用最新版的 WordPress 进行开发和测试。

插件名称和插件相关 PHP 代码文件

一般来说,都是在 wp-content\plugins 目录下建立一个文件夹,文件夹的名字取插件的名字,我们插件名字为 “Copyright plugin”,文件结构如下

这里的 readme.txt 文件中包含了一些插件的介绍,使用说明等信息,主要是提交到 WordPress 官方网站时候用到的,可以参考他们给的模板 http://wordpress.org/extend/plugins/about/readme.txt,另外还有插件截图预览的功能,需要另外添加图片,但是我们现在是练习,不需要提交到官网,所以暂时先不涉及这些。

插件的核心

总的来说,插件的核心是两个 function,用来添加 Hooks(中文译为钩子)

add_action ($hookname, $callbackfunction)

add_filter ($hookname,$callbackfunction)

这两个方法相当重要,几乎所有的插件都要用到他们。

Actions,我理解就是 wordpress 核心代码预留的一些特殊的切入点,或者说是在执行一些特定事件时候发生,例如文章发布时,或者访客留言时触发。想情参见  Action Reference

Filters,应该就是 wordpress 执行时,对数据传输过程的一种过滤机制,例如当文章保存到数据库的过程,或者文章从事数据库中取出,展现到浏览器中的这个过程。详情参见 Filter Reference

我们今天要制作的插件,应该是用 Filters,因为我们要在文章显示在浏览器之前,在最后面加上一段字符窜,用来显示版权信息,后面添加菜单项的时候,也要用到 Actions。

插件概要信息

用文本编辑器打开 copyright-plugin.php 文件,输入如下信息:

  1. <?php     
  2. /*
  3. Plugin Name: Copyright plugin    
  4. Plugin URI: http://www.akasuna.com/plugins/    
  5. Description: 此插件将在文章正文最下面,显示一行版权信息    
  6. Version: 1.0    
  7. Author: akasuna    
  8. Author URI: http://www.akasuna.com/    
  9. License: GPL    
  10. */    
  11. ?>   

保存好文件,然后登录 WordPress 后台,打开插件菜单,应该就可以看到这个插件,已经显示在插件列表里面了,并且可以启用这个插件试试,不过没有任何效果,因为到目前为止,这个插件还没有实现任何功能。

为插件实现功能

  1. <?php     
  2. /*
  3. Plugin Name: Copyright plugin    
  4. Plugin URI: http://www.akasuna.com/plugins/    
  5. Description: 插件将在文章正文最下面,显示一行版权信息    
  6. Version: 1.0    
  7. Author: akasuna    
  8. Author URI: http://www.akasuna.com/    
  9. License: GPL    
  10. */    
  11.     
  12. /* 此插件将在文章正文最下面,显示一行版权信息 */    
  13. function display_copyright() {     
  14.     return “<p style=’color:red’>本站点所有文章均为原创,转载请注明出处!</p>”;     
  15. }     
  16. ?>   

保存好这个文件,然后打开正在用的主题文件夹,打开 single.php 文件夹,找到 <?php the_content(); ?> 并在下面添加如下代码

  1. <?php     
  2. if(function_exists(‘display_copyright’)) {     
  3.     echo display_copyright();     
  4. }     
  5. ?>   

function_exists 是判断 display_copyright 函数是否存在,因为当插件停用的时候,主题代码里面是找不到这个函数的,所以要判断一下,防止出错。

然后启用在 wordpress 后台启用该插件,再打开博客日志正文看看效果吧!

至此,这段代码,应该可以勉强算是一个插件了。之所以说勉强,是因为这个插件存在一个问题,需要手工去修改主题代码,如果用户换了主题的话,需要在新主题里面再次修改代码,这个不好。

改良插件

还记得我们前面说过的 Hooks (钩子)吗,我们要开始用 Filter 钩子了!

代码修改如下:

  1. <?php   
  2. /*
  3. Plugin Name: Copyright plugin  
  4. Plugin URI: http://www.akasuna.com/plugins/  
  5. Description: 此插件将在文章正文最下面,显示一行版权信息  
  6. Version: 1.0  
  7. Author: akasuna  
  8. Author URI: http://www.akasuna.com/  
  9. License: GPL  
  10. */  
  11.   
  12. add_filter( ‘the_content’,  ‘display_copyright’ );   
  13.   
  14. /* 这个函数在日志正文结尾处添加一段版权信息,并且只在 single 页面才添加 */  
  15. function display_copyright( $content ) {   
  16.     if( is_single() )   
  17.         $content = $content . “<p style=’color:red’>本站点所有文章均为原创,转载请指明出处!</p>”;   
  18.   
  19.     return $content;   
  20. }   
  21.   
  22. ?>  

参看以上代码,其中 the_content 是钩子的名字,display_copyright 是回调函数名称。这样一来,只要启用插件就可以实现功能,无需去修改主题了,请把刚才在 single.php 文件中添加的代码删掉,然后启用插件,看看效果吧,显示效果应该是一样的,无论怎么换主题,还是会自动显示版权信息。

1 2

未经允许不得转载:自由草 » WordPress插件开发详细教程

赞 (2)