找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
积分等级发帖收益的说明江阴论坛帮助汇总江阴论坛管理规则(必看)江阴论坛版主招聘中江阴论坛已运行
查看: 2511|回复: 0

[WordPress] 如何制作WordPress插件

[复制链接]
发表于 2010-4-24 15:05:43 | 显示全部楼层 |阅读模式
我想大部分的wordpress用户都有使用插件吧,但是你有没有想过制作自己的插件呢?本文将指引你制作一个最简单的插件,你会发现其实制作一个插件并没有想象的那么难。

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

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

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

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

下面开始编辑dm_add_text.php,为了让wordpress识别我们的插件,需要在刚开始添加一段特定格式的注释:
  1. <?php
  2. /*
  3. * Plugin Name: 测试插件 Add Text
  4. * Version: 0.1
  5. * Plugin URI: http://domety.com/
  6. * Description: 在文章结束的地方添加一段自定义的文字
  7. * Author: DDBug
  8. * Author URI: http://domety.com/
  9. */
  10. ?>
复制代码
这样wordpress就可以识别到这个插件了,我们可以进入后台管理面板的插件列表中看一下效果

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

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

Action就像是wordpress定义的一些事件,允许我们在这些事件发生的时候去做一些我们自己的事情。操作起来也很简单,只需要调用 add_actiion即可。add_action的原型如下:
  1. 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,如下
  1. function add_to_header(){

  2.          echo '<!-- 这里是由插件插入的一段注释 -->';

  3. }

  4. add_action('wp_head','add_to_header');
复制代码
我们使用了wp_head这个hook,它允许我们在页面的<head>部分插入代码。

保存文件,并在后台控制面板的插件列表中启用这个插件,再打开我们的页面,查看页面源代码,会在头部找到这样一段信息
  1. <!-- 这里是由插件插入的一段注释 -->
复制代码
在实际应用中,你可以插入一些有用的代码,包括php代码.
Filters

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

调用的方法和action差不多,add_filter,原型如下:
  1. add_filter('hook_name','your_filter', [priority], [accepted_args]);
复制代码
我们就是利用它来修改文章内容的输入,在文章的结尾处添加一段文字。比如我们在每篇文章的结束处添加上”The End!”。继续在我们的dm_add_text.php文件中加入以下代码:
  1. function add_text($content = ''){

  2.        $content .= '</ br>The End !';

  3.        return $content;

  4. }

  5. 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。

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

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

本版积分规则

手机版|小黑屋|江阴人家

GMT+8, 2024-11-24 00:55 , Processed in 0.023372 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表