首頁 >CMS教程 >&#&按 >WordPress插件開發

WordPress插件開發

Jennifer Aniston
Jennifer Aniston原創
2025-02-21 10:48:10556瀏覽

WordPress插件開發

如果您曾經使用WordPress快速構建一個網站,那麼您很可能會使用提供的眾多插件之一來擴展此流行的博客軟件的功能。插件是使WordPress如此吸引人的眾多內容之一。如果您需要圖像庫或聯繫表格,則可能已經可以下載並使用了一個插件。但是,有時候您找不到現有插件所需的東西。本文將向您展示如何通過引導您瀏覽一個示例來使用側邊欄中的小部件顯示一些文本來創建自己的WordPress插件。

鑰匙要點

    在無法找到滿足其需求的現有插件時,可以創建
  • WordPress插件,該插件擴展了博客軟件的功能。創建過程涉及在WP-Content/插件目錄中創建一個新的子目錄,並在PHP文件註釋中提供描述符以識別插件。
  • WordPress提供了一個可以擴展以創建自定義小部件的WP_Widget類。 WP_WIDGET類具有應覆蓋的四種方法:__construct(),form(),update()和widget()。這些方法初始化了小部件,顯示用於自定義的表單,更新小部件屬性,並分別在博客上顯示小部件。
  • >
  • 創建WordPress插件時,遵循最佳實踐,例如使用適當的命名約定,通過驗證和消毒用戶輸入來確保安全,並使插件可翻譯以吸引更多受眾。可以通過遵守WordPress編碼標準並使用不同的主題來測試插件來實現與所有主題的兼容性。
  • 調試WordPress插件涉及使用內置的調試系統或帶有調試器的PHP IDE。確保插件的安全性涉及驗證和消毒用戶輸入,使用NONCES驗證請求源,設置正確的文件權限以及使用WordPress API函數進行數據操作。定期更新和測試可以幫助識別潛在的安全漏洞。

主插件文件

從WordPress安裝目錄中的WP-CONTENT/插件目錄自動檢測插件。創建新插件時,您應該在那裡創建一個新的子目錄。子目錄的名稱可以是您想要的任何東西;一個明智的選擇是將其稱為插件的名稱。盡量避免使用諸如“ textwidget”或“ shoppingcart”之類的通用名稱,因為它可能已經與另一個插件一起使用,如果您希望將其分發給WordPress的其他用戶,則會引起問題。在此示例中,創建一個名為phpmaster_examplewidget的子目錄。 WordPress檢測插件是否可以從PHP文件的註釋中的描述符中獲得。描述符必須提供有關插件的基本信息,誰創建了該插件以及其許可信息。這就是WordPress用來識別存在插件並準備激活的插件。此示例插件將在您新創建的phpmaster_examplewidget目錄中放置在頂部的定義。文件的名稱也是任意的,但建議提供一個含義名稱。此示例將調用文件widget_init.php。
<span><span><?php
</span></span><span><span>/* 
</span></span><span><span>Plugin Name: Simple Text Plugin
</span></span><span><span>Plugin URI: http://www.example.com/textwidget
</span></span><span><span>Description: An example plugin to demonstrate the basics of putting together a plugin in WordPress
</span></span><span><span>Version: 0.1 
</span></span><span><span>Author: Tim Smith 
</span></span><span><span>Author URI: http://www.example.com
</span></span><span><span>License: GPL2 
</span></span><span><span>
</span></span><span><span>    Copyright 2011  Tim Smith
</span></span><span><span>
</span></span><span><span>    This program is free software; you can redistribute it and/or
</span></span><span><span>    modify it under the terms of the GNU General Public License,
</span></span><span><span>    version 2, as published by the Free Software Foundation. 
</span></span><span><span>
</span></span><span><span>    This program is distributed in the hope that it will be useful,
</span></span><span><span>    but WITHOUT ANY WARRANTY; without even the implied warranty of 
</span></span><span><span>    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
</span></span><span><span>    GNU General Public License for more details. 
</span></span><span><span>
</span></span><span><span>    You should have received a copy of the GNU General Public License 
</span></span><span><span>    along with this program; if not, write to the Free Software 
</span></span><span><span>    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 
</span></span><span><span>    02110-1301  USA 
</span></span><span><span>*/</span></span>
這是您將為WordPress創建的任何插件所需的結構。現在,當您登錄並查看WordPress中的插件管理屏幕時,您會看到新的插件已準備就緒。

WordPress插件開發

您可以在此處顯示在“評論”部分中輸入的所有信息。如果願意,您可以立即激活它,但是您仍然需要添加一些功能,然後才能執行任何功能。 現在,具有此定義的文件被認為是與插件關聯的任何代碼的起點。定義註釋後出現的代碼將執行,使您有機會初始化插件及其功能。

WordPress小部件

WordPress提供了一個類,您可以擴展名為wp_widget。當您擴展它時,您自己的小部件將用於您主題提供的任何側邊欄。 WordPress帶有許多默認小部件,例如“最近的帖子”和“檔案”,它們擴展了wp_widget。 WP_Widget類提供了四種應覆蓋的方法:
  • __ construct() - 調用父構建器並初始化任何類變量
  • form() - 在管理員視圖中顯示小部件的表單以自定義窗口小部件的屬性
  • >
  • update() - 更新admin View 中表單中指定的小部件屬性
  • widget() - 在博客上顯示小部件

構造函數

構造函數就像您可能編寫的任何其他構造函數一樣。重要的是要記住的是調用可以進行三個參數的父構建器:小部件的標識符,小部件的友好名稱(這將顯示為admin Widget屏幕中的窗口小部件的標題)和一個數組詳細說明小部件的屬性(僅需要“描述”值)。
<span><span><?php
</span></span><span><span>/* 
</span></span><span><span>Plugin Name: Simple Text Plugin
</span></span><span><span>Plugin URI: http://www.example.com/textwidget
</span></span><span><span>Description: An example plugin to demonstrate the basics of putting together a plugin in WordPress
</span></span><span><span>Version: 0.1 
</span></span><span><span>Author: Tim Smith 
</span></span><span><span>Author URI: http://www.example.com
</span></span><span><span>License: GPL2 
</span></span><span><span>
</span></span><span><span>    Copyright 2011  Tim Smith
</span></span><span><span>
</span></span><span><span>    This program is free software; you can redistribute it and/or
</span></span><span><span>    modify it under the terms of the GNU General Public License,
</span></span><span><span>    version 2, as published by the Free Software Foundation. 
</span></span><span><span>
</span></span><span><span>    This program is distributed in the hope that it will be useful,
</span></span><span><span>    but WITHOUT ANY WARRANTY; without even the implied warranty of 
</span></span><span><span>    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
</span></span><span><span>    GNU General Public License for more details. 
</span></span><span><span>
</span></span><span><span>    You should have received a copy of the GNU General Public License 
</span></span><span><span>    along with this program; if not, write to the Free Software 
</span></span><span><span>    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 
</span></span><span><span>    02110-1301  USA 
</span></span><span><span>*/</span></span>
有了基本的小部件結構,您將需要註冊小部件,並確保在所有其他小部件都在初始化的時候完成此操作。註冊小部件是通過寄存器_widget()函數完成的,該函數獲取一個參數,即擴展WP_Widget的類的名稱。必須在適當的時間調用此註冊小部件的調用,因此您要使用的特定WordPress掛鉤稱為“ widgets_init”。要將註冊小部件註冊的掛鉤關聯,您使用add_action()將鉤子的名稱作為第一個參數,而函數則作為第二個參數。 (第二個參數可以是函數的字符串名稱或閉合。)該代碼應直接放在widget_init.php中創建的插件的描述下。
<span><span><?php
</span></span><span><span>class TextWidget extends WP_Widget
</span></span><span><span>{
</span></span><span>    <span>public function __construct() {
</span></span><span>        <span><span>parent::</span>__construct("text_widget", "Simple Text Widget",
</span></span><span>            <span>array("description" => "A simple widget to show how WP Plugins work"));
</span></span><span>    <span>}
</span></span><span><span>}</span></span>
現在已經註冊並初始化了它,您將可以看到可用於使用的小部件。

form()方法

此處的示例小部件應該讓您輸入一個標題和一些文本,在博客上查看時要顯示一些文本,因此,為了能夠修改小部件的這兩個方面,您需要創建一個表單以提示這些值。 form()方法在小部件管理屏幕中使用,以顯示字段,您以後可以使用該字段來更改站點本身上窗口小部件的功能。該方法採用一個參數,一個與小部件關聯的變量的$實例數組。提交表單後,小部件將調用Update()方法,該方法允許您在$實例中更新具有新值的字段。後來,將調用widget(),並將使用$實例顯示值。
<span><span><?php
</span></span><span><span>add_action("widgets_init",
</span></span><span>    <span>function () { register_widget("TextWidget"); });
</span></span><span><span>?></span></span>
您使用wp_widget’s get_field_id()方法和get_field_name()方法分別為表單字段創建ID和名稱。 WordPress將為您生成唯一標識符,以免與使用中的其他小部件發生衝突,並且在提交表單時,值將更新相關的$實例數組項目。您可以使用傳遞的$實例參數在設置值的情況下填充表單字段。 這就是Admin視圖中表格的樣子:

WordPress插件開發

父元素本身,保存按鈕以及刪除和關閉鏈接是通過WordPress自動為您生成的,因此無需明確編碼它們。表單將發布變量並調用Update()方法,以便可以將新值插入$實例。

update()方法

更新() 在小部件使用之前,讓您有機會驗證和消毒實例變量。在這裡,您可以根據舊值做出決策,並相應地更新新值。 update()必須返回包含您在顯示小部件時期望使用的項目的數組。 WordPress將兩個參數傳遞給了它,一個帶有新實例值的數組和一個帶有原始實例值的數組。
<span><span><?php
</span></span><span><span>/* 
</span></span><span><span>Plugin Name: Simple Text Plugin
</span></span><span><span>Plugin URI: http://www.example.com/textwidget
</span></span><span><span>Description: An example plugin to demonstrate the basics of putting together a plugin in WordPress
</span></span><span><span>Version: 0.1 
</span></span><span><span>Author: Tim Smith 
</span></span><span><span>Author URI: http://www.example.com
</span></span><span><span>License: GPL2 
</span></span><span><span>
</span></span><span><span>    Copyright 2011  Tim Smith
</span></span><span><span>
</span></span><span><span>    This program is free software; you can redistribute it and/or
</span></span><span><span>    modify it under the terms of the GNU General Public License,
</span></span><span><span>    version 2, as published by the Free Software Foundation. 
</span></span><span><span>
</span></span><span><span>    This program is distributed in the hope that it will be useful,
</span></span><span><span>    but WITHOUT ANY WARRANTY; without even the implied warranty of 
</span></span><span><span>    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
</span></span><span><span>    GNU General Public License for more details. 
</span></span><span><span>
</span></span><span><span>    You should have received a copy of the GNU General Public License 
</span></span><span><span>    along with this program; if not, write to the Free Software 
</span></span><span><span>    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 
</span></span><span><span>    02110-1301  USA 
</span></span><span><span>*/</span></span>
WordPress將為您持續這些值,因此無需實現該功能。

> widget()方法

widget()方法用於在博客上的側邊欄中出現在小部件中的內容。該方法的輸出將渲染博客頁面。 WordPress通過widget()方法兩個參數:第一個是$ args,它是一個數組詳細信息有關小部件的信息,第二個是$實例,您可以用它來獲取與窗口小部件相關的數據的輸出。 $ args確實不會影響這個示例,所以我不會參與其中;只要記住$實例是第二個參數。
<span><span><?php
</span></span><span><span>class TextWidget extends WP_Widget
</span></span><span><span>{
</span></span><span>    <span>public function __construct() {
</span></span><span>        <span><span>parent::</span>__construct("text_widget", "Simple Text Widget",
</span></span><span>            <span>array("description" => "A simple widget to show how WP Plugins work"));
</span></span><span>    <span>}
</span></span><span><span>}</span></span>
這將在網站上產生以下可能的輸出:

WordPress插件開發

就是這樣!將所有這些放在一起將為您提供一個非常簡單的小部件,以在WordPress安裝的博客側顯示文本。

摘要

現在,您熟悉WordPress插件的必要基礎,以確保WordPress可以檢測和激活它,並擴展WP_Widget類以創建自己的小部件。本文中介紹的示例小部件通過管理提供的配置表格演示了該功能自定義小部件的顯示。儘管很簡單,但它突出了您將使用的基本WP_WIDGET方法,您將很容易地從此示例中繼續前進,並為自己的WordPress驅動的站點創建更大的功能。該示例的代碼可在phpmaster的GitHub帳戶下獲得,因此您可以查看整體中的代碼。 通過Bioraven / shutterstock 圖像

經常詢問有關WordPress插件開發的問題

我如何開始開發WordPress插件?

開始開發WordPress插件,您需要對PHP,HTML,CSS和JavaScript有基本的了解。擁有這些技能後,您可以首先在WordPress插件目錄中創建一個新文件夾。在您的插件之後命名此文件夾。在此文件夾中,創建一個具有相同名稱的PHP文件。該文件將用作插件的主文件。在此文件中,您需要包括一個標題註釋,該評論告訴WordPress此處存在一個插件。設置基本結構後,您可以開始編寫插件的功能。

WordPress插件開發的最佳實踐是什麼? > WordPress插件開發的一些最佳實踐包括:使用適當的命名約定,以避免使用WordPress掛鉤和過濾器在可能可以翻譯以吸引更多的聽眾。保持代碼清潔且徵用良好以供將來參考和更新。由於可用的主題,主題可能具有挑戰性。但是,使用掛鉤和過濾器來遵守WordPress編碼標準,而不是修改核心文件,並使用不同的主題測試插件可以幫助確保兼容性。還建議您為您的插件用戶提供明確的文檔和支持。

>

我如何調試我的WordPress插件?

>調試您的WordPress插件涉及識別和修復其開發過程中可能出現的任何問題或錯誤。 WordPress帶有一個內置的調試系統,您可以在WP-Config.php文件中啟用該系統。通過將wp_debug設置為true,您可以在網站的前端顯示PHP錯誤。此外,使用PHP IDE與調試器一起可以幫助您逐步介紹代碼並更有效地找到問題。

>

>我如何確保WordPress插件的安全性?

確保您的安全性確保您的安全性WordPress插件涉及多個步驟。首先,始終驗證和消毒用戶輸入以防止SQL注入攻擊。其次,使用Nonces驗證請求源。第三,在插件文件中使用適當的文件權限。第四,使用WordPress API函數進行數據操作,而不是自定義SQL查詢。最後,定期更新和測試您的插件是否有潛在的安全性漏洞。

>如何使我的WordPress插件友好? t對網站的加載速度產生負面影響,因為這是SEO的關鍵因素。另外,如果您的插件將內容添加到網站上,請確保它易於通過搜索引擎爬網和索引。如果您的插件涉及圖像,請確保添加Alt標籤。最後,確保您的插件與流行的SEO插件兼容。

>如何更新WordPress插件?

​​

更新WordPress插件涉及對插件文件進行必要的更改,然後遞增版本插件標題評論中的編號。測試更新版本並確保其正常工作後,您可以將其上傳到WordPress插件存儲庫中。如果您的插件託管在WordPress插件存儲庫上,則將通知用戶WordPress儀表板中的更新。

>

>如何使我的WordPress插件用戶友好?用戶友好型涉及提供清晰詳細的文檔,包括必要的屏幕截圖或視頻。另外,請確保您的插件的設置和選項是直觀且易於理解的。提供及時且有用的支持也可以極大地增強用戶體驗。

>如何測試我的WordPress插件?

>測試您的WordPress插件涉及在不同的方案以及不同的主題和插件中檢查其功能。您可以將自動測試工具(例如Phpunit)進行單位測試。另外,考慮使用調試工具來確定任何錯誤或問題。最好在發布插件之前先提供可以提供反饋的Beta測試人員。

>

>如何將我的WordPress插件貨幣化?您可以提供具有基本功能和具有高級功能的優質版本的免費版本。您還可以為您的免費插件提供付費附加組件。另一個選擇是免費提供您的插件,並提供付費支持或自定義開發服務。 >

以上是WordPress插件開發的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn