wordpress插件的制作

我想大部分的wordpress用户都有使用插件吧,但是你有没有想过制作自己的插件呢?本文将指引你制作一个最简单的插件,你会发现其实制作一个插件并没有想象的那么难。

如果你明白了插件的制作过程以及原理,对别人的插件修改起来也就很容易了。当我们感觉某个插件并不能满足我们的需要,而且没有更好的插件可以代替的时候,那么我们可以对其进行修改,甚至是按照我们自己的需求重新做一个插件出来。

WordPress的插件保存在wp-content\plugins\ 文件夹下,一个简单的插件只需要一个php文件即可完成。

我们来制作这样一个插件来讲述插件的制作过程:在每篇文章的结束的时候,添加一段我们自定义的文字。下面我们开始制作:

下面我们在plugins文件夹下新建一个php文件,文件名你可以随便定义,不过建议使用和你的插件功能相关的名字,这里我们使用dm_add_text.php。你也许会问,为什么文件名中要加一个dm_呢,这是为了避免和别的插件文件重名,所以添加一个我们自定义的文件前缀,这样一来重复的可能性就会减少,在接下介绍的函数名中也是一样,最好加个前缀。

下面开始编辑dm_add_text.php,为了让wordpress识别我们的插件,需要在刚开始添加一段特定格式的注释:

<?php
/*
 * Plugin Name: 测试插件 Add Text
 * Version: 0.1
 * Plugin URI: http://domety.com/
 * Description: 在文章结束的地方添加一段自定义的文字
 * Author: DDBug
 * Author URI: http://domety.com/
 */
 ?>

这样wordpress就可以识别到这个插件了,我们可以进入后台管理面板的插件列表中看一下效果,如下

但其实我们的这个插件什么都没做,接下来我们将为这个插件添加一些功能

Actions

在继续我们的插件制作之前,先了解一下什么是action.

Action就像是wordpress定义的一些事件,允许我们在这些事件发生的时候去做一些我们自己的事情。操作起来也很简单,只需要调用add_actiion即可。add_action的原型如下:

add_action ( ‘hook_name’, ‘your_function_name’, [priority], [accepted_args] );

hook_name是wordpress定义的hook名,我们可以选择一个合适的hook使用;

your_function_name是我们自定义的函数名;

priority和accepted_args都是可选的,用来设置权限和参数;

我们来举例说明,比如我们想在页面的头部加入一段信息,我们以加入一段注释为例:

首先我们定义一个函数add_to_header并调用add_action,如下

function add_to_header(){

         echo ‘<!– 这里是由插件插入的一段注释 –>’;

 }

 add_action(‘wp_head’,’add_to_header’);

 

我们使用了wp_head这个hook,它允许我们在页面的<head>部分插入代码。

保存文件,并在后台控制面板的插件列表中启用这个插件,再打开我们的页面,查看页面源代码,会在头部找到这样一段信息

<!– 这里是由插件插入的一段注释 –>

在实际应用中,你可以插入一些有用的代码,包括php代码.

Filters

除了action之外,在开发插件的过程中,另外一个经常用到的概念就是filter,我们可以把它简单的理解为过滤。过滤什么呢?过滤文本。在wordpress把文本显示到浏览器或者插入到数据库之前,我们可以对文本进行修改。这就是filter的作用。

调用的方法和action差不多,add_filter,原型如下:

add_filter(‘hook_name’,’your_filter’, [priority], [accepted_args]);

我们就是利用它来修改文章内容的输入,在文章的结尾处添加一段文字。比如我们在每篇文章的结束处添加上”The End!”。继续在我们的dm_add_text.php文件中加入以下代码:

function add_text($content = ”){

       $content .= ‘</ br>The End !’;

       return $content;

 }

 add_filter(‘the_content’,’add_text’);

首先我们定义了一个add_text函数,它接受一个参数$content,如果没有参数传进来就为空。然后我们把$content连接the end字符并返回新的$content。最后把add_text函数添加到the_content hook。这样一样,当页面中调用the_content函数的时候,就会自动调用add_text,最终达到在文章结束处添加the end的目的。

保存这段代码,再打开网页中的一篇文章测试一下,看看文章结束处有没有”The End”?

到这里,你可以说我们的插件已经开发结束了,是的,就是已经结束了。只要你把这个插件提供给用户,用户启用了这个插件,就可以在他们博客的文章中自动加入the end。

那么,你是不是觉得开发一个插件其实也并不难呢?

不过了,这样的插件并不是一个人性化的插件,因为用户并不能修改添加的内容,除非他们自己修改插件。为了开发出一个更完善的插件,我们应该给用户提供一个选择的权力,让用户选择是否需要在文章结束处添加文字以及添加什么样的文字。

在你使用别人的插件的时候,应该知道,在后台控制面板中都有插件的设置页面。至于如何在后台管理面板添加这样的一个页面,将在下一篇文章中介绍

下载本文示例文件dm_add_text.php:

Xun6下载      Ziddu下载      趣盘下载

Comments (2)

flying v guitar十月 3rd, 2010 at 下午 5:18

你的www.wowp.org真不错,我也挺喜欢鼓捣这个,可惜现实中没有认识几个谈网站的,我的网站从来没人说过好:(

笨笨熊十月 4th, 2010 at 上午 7:31

呵呵,欢迎以后多交流,互相学习!

Leave a comment

You must be logged in to post a comment.