細談eclipse PDT開發WordPress插件

    WordPress 是用 PHP 編寫的一個 Web 發佈平臺,存儲部分使用的是 MySQL。它的可擴展性表如今經過構建插件能夠添加過濾器和行爲。Eclipse PHP Development Tools (PDT) V2.0 項目容許您使用 Eclipse 來構建 PHP 應用程序。by the way,wordpress自己有許多插件和Joomla同樣能夠安裝,這裏我說的是經過eclipse pdt自定義PHP插件不是更好。 php



   Do it yourself html



前提,須要安裝如下工具: 編程

  • PHP V6.0 或更新的版本
  • MySQL V4.0 或更新的版本
  • 帶 PDT 的 Eclipse 新版本


  • WordPress 是用 PHP 編寫的一個發佈平臺,藉助它,能夠快速便捷地向 Web 發佈內容。它具備高度的可擴展性,能夠在這個平臺上建立出具備任意功能的插件。自 2005 年來,有上百萬的 WordPress 拷貝被大公司及我的下載並使用。 設計模式

    WordPress 很容易安裝和配置,而且要求不多:只需 PHP 和 MySQL。要安裝 WordPress,只需從 Web 站點下載 ZIP 文件(),而後將 ZIP 解壓縮到可從 Web 服務器訪問到的一個目錄下便可。本文中,咱們採用的這個 Web 服務器已被配置成容許向該 Web 服務器發佈此用戶目錄(相似 Apache 中的 userdir 模塊)。若是願意,能夠重命名這個目錄:這裏,我將名稱從 wordpress 改成了 blogapi

    在完成解壓縮和重命名目錄後,請遵守 「Famous 5-Minute Install」 的指導(參見 參考資料)進行操做。若是您的 ISP 支持 WordPress 的需求,那麼您就能夠在本地開發,而後將整個目錄 FTP 到您的站點。 服務器


    擴展 WordPress

    不少人都習慣使用 WordPress 撰寫博客,可是實際上它能夠用來輕鬆發佈任何內容。我接觸過不少用 WordPress 做爲主要引擎來託管產品信息類站點的網站,這些站點每每還包括有論壇、反饋表及首頁上的 Adobe® Flash® 動畫。 cookie

    針對 WordPress,有不少插件可用(參見 參考資料)。這些插件的範圍很廣,從添加定製字段來收集更多關於該 WordPress 站點註冊用戶信息的功能,到標記雲(tag clouds)、反垃圾郵件實用程序,再到能生成指向諸如 Facebook、MySpace、del.icio.us 和 Technorati 這類流行站點的 「Share this」 連接的聯繫插件。 eclipse

    但即便有了這些插件,仍是會出現須要經過擴展 WordPress 來知足具體須要的狀況。本文後面的部分將展現如何用 Eclipse 和 PDT 創建一個能夠在其中開發並測試 WordPress 插件的開發環境。 編輯器


  • 具體方法: 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項目,圖:
    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. 定義項目的位置
    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 管理員面板內的插件

  • 向構建路徑中添加 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 插件
  • 在圖 中 所示的 Archive file 窗口中,單擊 Deselect All,而後單擊想要包括到歸檔文件(好比 myplugin.php)的那些 PHP 文件。在選擇了這些 PHP 文件後,能夠從 To archive file 選擇此歸檔文件的位置,而後單擊 Finish 建立此文件。爲了保持一致性,最好是讓此 ZIP 文件的名稱與此插件目錄以及主要插件文件的名稱相同。

    圖 下. 選擇要導出的文件
  • 從 Eclipse 建立了歸檔文件後,就可將其發佈到一個 Web 服務器上或是將其複製到您的 ISP 處以便您可使用它。

  • WordPress 是愈來愈流行的一個可擴展 Web 應用程序,一點不亞於Joomla,讓您可以輕鬆地將內容發佈給用戶。您無需修改任何 WordPress 代碼就能夠擴展 WordPress,從而提供更多的功能。

    藉助安裝了 PDT 的 Eclipse IDE,可使用 PHP 工具構建一個插件。您還能夠用 WordPress 測試和運行您的插件,直到它所有完成。以後,您可使用 Eclipse 的導出功能來將此插件導出到一個適合於分發的歸檔文件。

  • 幾乎全部的CMS內容管理系統均可以使用eclipse來擴展插件

  • end。

相關文章
相關標籤/搜索