细谈eclipse PDT开发WordPress插件

    WordPress 是用 PHP 编写的一个 Web 发布平台,存储部分使用的是 MySQL。它的可扩展性表现在通过构建插件可以添加过滤器和行为。Eclipse PHP Development Tools (PDT) V2.0 项目允许您使用 Eclipse 来构建 PHP 应用程序。by the way,wordpress本身有许多插件和Joomla一样可以安装,这里我说的是通过eclipse pdt自定义PHP插件不是更好。

细谈eclipse PDT开发WordPress插件_第1张图片


   Do it yourself

细谈eclipse PDT开发WordPress插件_第2张图片

细谈eclipse PDT开发WordPress插件_第3张图片

前提,需要安装以下工具:

  • PHP V6.0 或更新的版本
  • MySQL V4.0 或更新的版本
  • 带 PDT 的 Eclipse 新版本
  • 细谈eclipse PDT开发WordPress插件_第4张图片

  • WordPress 是用 PHP 编写的一个发布平台,借助它,可以快速便捷地向 Web 发布内容。它具有高度的可扩展性,可以在这个平台上创建出具有任意功能的插件。自 2005 年来,有上百万的 WordPress 拷贝被大公司及个人下载并使用。

    WordPress 很容易安装和配置,并且要求很少:只需 PHP 和 MySQL。要安装 WordPress,只需从 Web 站点下载 ZIP 文件(),然后将 ZIP 解压缩到可从 Web 服务器访问到的一个目录下即可。本文中,我们采用的这个 Web 服务器已被配置成允许向该 Web 服务器发布此用户目录(类似 Apache 中的 userdir 模块)。如果愿意,可以重命名这个目录:这里,我将名称从 wordpress 改为了 blog

    在完成解压缩和重命名目录后,请遵照 “Famous 5-Minute Install” 的指导(参见 参考资料)进行操作。如果您的 ISP 支持 WordPress 的需求,那么您就可以在本地开发,然后将整个目录 FTP 到您的站点。


    扩展 WordPress

    很多人都习惯使用 WordPress 撰写博客,但是实际上它可以用来轻松发布任何内容。我接触过很多用 WordPress 作为主要引擎来托管产品信息类站点的网站,这些站点往往还包括有论坛、反馈表及首页上的 Adobe® Flash® 动画。

    针对 WordPress,有很多插件可用(参见 参考资料)。这些插件的范围很广,从添加定制字段来收集更多关于该 WordPress 站点注册用户信息的功能,到标记云(tag clouds)、反垃圾邮件实用程序,再到能生成指向诸如 Facebook、MySpace、del.icio.us 和 Technorati 这类流行站点的 “Share this” 链接的联系插件。

    但即使有了这些插件,还是会出现需要通过扩展 WordPress 来满足具体需要的情况。本文后面的部分将展示如何用 Eclipse 和 PDT 建立一个可以在其中开发并测试 WordPress 插件的开发环境。


  • 具体方法:

  • 建立自已的工作区

    在建立工作区之前,请确认已经安装并运行了 WordPress。此外,还需要对 WordPress 目录有读写的访问权。最好的情况是在您自己的机器上使用在 Web 服务器上已经配置了的用户目录,以便能将文件放入您自己的根目录下。但一个共享的目录也是可以的,只要您可以对它进行读写操作。

  • 在继续进行前,先在 WordPress_home/wp-content/plugins 目录(其中,WordPress_home 是 WordPress 解压缩后所处的那个目录的完整路径)内创建一个目录 — 例如, WordPress home/wp-content/plugins/myplugin。之后,新 WordPress 插件都将被存放在这个目录之下。

    如果已经安装并运行了 WordPress,并且可以对刚刚为插件创建的这个目录进行读写,那么就可以着手为 WordPress 插件创建一个新项目了:

    1. 选择 File > Project,然后从 Wizards 列表中选择 PHP Project 
    创建新的PHP项目,图:
  • 细谈eclipse PDT开发WordPress插件_第5张图片

    1. 单击 Next
    2. 在 New PHP Project 窗口中,在 Project name 框中键入插件的名称。
    3. 在 Contents 下,选择 Create project from existing source。接下来浏览或在 Directory 框中键入刚刚创建的目录的名称(例如,我的目录是 /Users/ngood/Sites/blog/wp-content/plugins/myplugin),
      图 2. 定义项目的位置
    4. 细谈eclipse PDT开发WordPress插件_第6张图片

    five,输入目录信息后,单击 Finish,其他信息均保留默认值。

    创建项目后,WordPress_home/wp-content/plugins/myplugin 目录的目录列表应类似清单 1。

    清单 1. 新 myplugin 目录的内容
    drwxr-xr-x  7 user  user    238 Feb  3 11:02 .
    drwxr-xr-x@ 5 user  user    170 Feb  3 08:39 ..
    -rw-r--r--  1 user  user    259 Feb  3 11:10 .buildpath
    -rw-r--r--  1 user  user  30244 Feb  3 11:02 .pmd
    -rw-r--r--  1 user  user    496 Feb  3 08:39 .project
    drwxr-xr-x  3 user  user    102 Feb  3 08:39 .settings
    -rw-r--r--  1 user  user    795 Feb  3 11:13 myplugin.php

    在一个团队环境中工作

    假如您正在一个团队环境中工作并在共享您的代码,那么 Eclipse 工具会负责将文件从正确的目录登记到源代码控制存储库内。然而,请留意文件在其中被从团队共享环境导入到您的工作区的这个目录。当从一个源代码控制存储库导出文件并导入到您的工作区时,您可以定义这些文件的存储位置(参见图 3)。要获得更多关于 Eclipse 与源代码存储库如何联合使用的信息,请参见 参考资料。

    图 3. 显示在 WordPress 管理员面板内的插件

  • 细谈eclipse PDT开发WordPress插件_第7张图片

  • 向构建路径中添加 WordPress

    PDT 项目提供了向构建路径添加文件夹的功能,它同时也使代码完成工具能够用于 WordPress。为了查看在代码完成工具中的 add_filter 与add_action 函数,可以修改构建路径以添加 WordPress wp-includes 目录。

    要想将 WordPress wp-includes 目录添加到构建路径,在 PHP 项目被突出显示的同时选择 Project > Properties 。在 Libraries 选项卡上,单击 Add External Source Folder,然后浏览到在安装 WordPress 的位置中找到的这个 wp-includes 目录。完成后,单击 OK。现在,可以在 PHP 编辑器中键入 add_ 并调用代码完成功能,之后将看到一个包括 add_action 与 add_filter 的列表。


    添加第一个插件文件

    要添加第一个插件文件,可以选择 File > New > PHP File。第一个文件的名称要与此文件所在目录的名称一样。例如,如果插件目录的名称是myplugin,那么此文件就应该命名为 myplugin.php。WordPress 会读取该文件以获得插件信息并注册扩展点。

    为了使 WordPress 能够识别插件,需要向新的插件文件中粘贴一个注释块。如果创建的 WordPress 插件很多,不妨考虑把这个代码块放入 PHP 的代码模板中。清单 2 就是一个完成了的代码块。

    清单 2. 能识别插件的注释块
    /*
    Plugin Name: My Plugin
    Plugin URI: http://www.example.com/myplugin
    Description: This is a really great plugin that extends WordPress.
    Version: 1.0.0
    Author: Nathan A. Good
    Author URI: http://www.nathanagood.com
    */

    此时,该插件不做任何事情。它将被显示在 WordPress 的插件管理区内,不过只有这个注释块。要查看这个新插件,请用管理员身份登录到 WordPress 实例,然后单击 Plugins。应该会看到这个新插件被列在 Inactive Plugins 的下面。

    图 4. 在从源代码控制存储库导入时定义源位置
    在从源代码控制存储库导入时定义源位置

    添加功能性

    本文中,我将添加两种功能。第一个功能很简单,就是让博客条目标题全部大写。这是一个添加过滤器 的示例。第二个功能是在用户注册表的末尾添加一个额外字段。这是一个添加动作 的示例。

    下面我要用函数性代码编写这两个示例以使其尽可能地简单。记住:若使用的是 PHP V5 或更新的版本,就可以融入面向对象的概念以使代码更易于读懂和维护。有关如何用面向对象编程的概念和设计模式编写更易于维护的 PHP 的详细信息,请参见 参考资料。

    大写的标题

    清单 3 所示的是标题过滤器的代码。其中,使用了 PHP 中的 strtoupper() 函数以使此博客的标题变为大写。

    清单 3. 使标题变成大写的函数
    /**
     * Capitalizes the title given by $title.
     */
    function capitalizeTitle($title) {
        return strtoupper($title);
    }

    写完这个函数后,需要调用 add_filter 以在 WordPress 中将此函数注册为特定的过滤器扩展点。参考资料 中提供了所有可用过滤器的清单的一个链接。下面是一个添加过滤器的示例。

    清单 4. 用 add_filter 添加过滤器
    /* now add the filter */
    add_filter('the_title', 'capitalizeTitle');

    添加注册字段

    清单 5 所示的代码可以生成一个新的定制注册字段。我用这个 Firebug 扩展来查看现有注册表单字段的 CSS(Cascading Style Sheet)样式,以确保我的定制字段具有相同的 CSS 样式类。

    清单 5. 新的定制字段动作
    /**
     * Adds a custom field that prompts the user for their favorite
     * color.
     * @return void
     */
    function drawCustomField() {
        echo '<p><label>Favorite Color:<br />';
        echo '<input autocomplete="off" class="input" name="fav_color" ';
        echo ' id="fav_color" size="25"';
        echo ' value="' . $_POST['fav_color'] . '" type="text" tabindex="32" />';
        echo '</label><br /></p>';
    }

    要添加这个定制动作,可以使用如下代码。

    清单 6. 用 add_action 添加动作
    /* now add the action */
    add_action('register_form', 'drawCustomField');

    这个动作只在表单上绘出此字段。当用户提交此表单时,它并不实际保存数据。要想保存数据,需要使用 profile_update 动作。有关所有可用操作的详细列表及各自的功能,请参看 参考资料。


    测试插件

    在项目内放入代码后,就可以开始测试插件了。在测试前,需要在 WordPress 内启用插件。以管理员身份登录到 WordPress,然后单击Plugins。找到插件,然后单击 Activate

    激活插件后,进入博客的首页。应该可以看到 “Hello World!” 示例标题现在全部都是大写字母了。如果禁用该插件,那么它将还原回普通的大小写的情况。利用这个功能还可以做一些其他的事情,比如将标题中的 URL 转为超链接。此外,也可以添加具有同样名称的多个过滤器,所以与其创建一个功能全面的过滤器,不如考虑创建多个小的、功能集中的功能块并将它们连接在一起。

    要测试插件的注册字段部分,必须以管理用户身份登录到 WordPress 并启用允许用户在 Settings 页面注册的特性。启用这个选项后,在进入到这个注册页面时,就会看到 Favorite Color 字段。


    WordPress 的其他扩展点

    除了添加过滤器和动作外,还可以覆盖 WordPress 内的函数。覆盖的函数均在 WordPress 主目录中的 pluggable.php 文件内定义。wp_mail 是其中的一个例子,可用来为用户发送电子邮件。很多可覆盖的函数都会处理用户授权,比如登录、设置 cookie 以及发送不同事件的通知。通过覆盖基于授权的函数,就可以构建一些插件,而这些插件能为 WordPress 提供另一种身份验证和授权方式,比如针对一个企业用户组织的身份验证。


    导出插件

    在编写和仔细测试了插件之后,有可能还会想要与他人共享。大多数 WordPress 插件与 WordPress 本身一样,都只打包成一个 ZIP 文件,这个文件可被扩展和复制到 WordPress 插件目录。

    可以用 Eclipse 导出这些插件文件。通过 Eclipse 将项目导出到一个 ZIP 归档文件,就可以避免同时发送特定于项目的文件和团队共享目录及文件(比如 .svn 或 Concurrent Version Systems(CVS)目录)。

    要将插件导出到一个归档文件,可以先选中 PHP 项目,然后选择 File > Export。在 Select 窗口,从目标列表中选择 Archive File,然后单击Next

    图 下. 导出 WordPress 插件
  • 细谈eclipse PDT开发WordPress插件_第8张图片

  • 在图 中 所示的 Archive file 窗口中,单击 Deselect All,然后单击想要包括到归档文件(比如 myplugin.php)的那些 PHP 文件。在选择了这些 PHP 文件后,可以从 To archive file 选择此归档文件的位置,然后单击 Finish 创建此文件。为了保持一致性,最好是让此 ZIP 文件的名称与此插件目录以及主要插件文件的名称相同。

    图 下. 选择要导出的文件
  • 细谈eclipse PDT开发WordPress插件_第9张图片

  • 从 Eclipse 创建了归档文件后,就可将其发布到一个 Web 服务器上或是将其复制到您的 ISP 处以便您可以使用它。

  • WordPress 是越来越流行的一个可扩展 Web 应用程序,一点不亚于Joomla,让您能够轻松地将内容发布给用户。您无需修改任何 WordPress 代码就可以扩展 WordPress,从而提供更多的功能。

    借助安装了 PDT 的 Eclipse IDE,可以使用 PHP 工具构建一个插件。您还可以用 WordPress 测试和运行您的插件,直到它全部完成。之后,您可以使用 Eclipse 的导出功能来将此插件导出到一个适合于分发的归档文件。

  • 几乎所有的CMS内容管理系统都可以使用eclipse来扩展插件

  • end。


你可能感兴趣的:(细谈eclipse PDT开发WordPress插件)