WordPress 是一個(gè)開源平臺(tái),強(qiáng)調(diào)全球 WordPress 社區(qū)的貢獻(xiàn)和利益。WordPress 生態(tài)系統(tǒng)每天都在變得越來(lái)越大,有許多插件和主題。目前,它在官方 WordPress.org 存儲(chǔ)庫(kù)中有 60K+ 插件。如果您打算將插件添加到WordPress官方庫(kù),請(qǐng)確保遵循最佳編碼實(shí)踐以獲得批準(zhǔn)。
在本文中,我們將向您展示如何通過(guò)遵循 WordPress 插件開發(fā)最佳實(shí)踐來(lái)有效地開發(fā)插件。
在此之前,讓我們快速瀏覽一下 WordPress 插件開發(fā)的關(guān)鍵階段。
WordPress插件開發(fā)的關(guān)鍵階段是什么

在您計(jì)劃創(chuàng)建插件之前,請(qǐng)確保它在 WordPress 生態(tài)系統(tǒng)中具有實(shí)用性。首先準(zhǔn)備好基礎(chǔ)知識(shí),然后開始相應(yīng)地編碼。在研發(fā)過(guò)程中,您需要回答以下問(wèn)題——
- WordPress 用戶真的需要這個(gè)插件嗎?
- 您的插件有哪些獨(dú)特的功能?
- 這些功能如何幫助用戶?
- 前端的設(shè)計(jì)是什么?
- 它將如何與必要的插件和服務(wù)集成?
一旦你確定你知道你在做什么,繼續(xù)做一個(gè) WordPress 插件。WordPress插件開發(fā)的關(guān)鍵階段如下 –
- 更正名稱并考慮商標(biāo)問(wèn)題
- 為插件創(chuàng)建文件夾和結(jié)構(gòu)
- 將文件頭添加到您的插件
- 編寫代碼以使您的插件正常運(yùn)行
- 將您的插件部署到 WordPress。
您需要將插件提交給 WordPress 審核團(tuán)隊(duì),然后才能最終對(duì)所有人可見(jiàn)。
在部署插件之前了解 WordPress.org 審核團(tuán)隊(duì)

每個(gè) WordPress 插件在公開出現(xiàn)在 WordPress.org 官方插件目錄之前都會(huì)經(jīng)過(guò)審核過(guò)程。審核團(tuán)隊(duì)由一群在 WordPress 開發(fā)方面擁有豐富經(jīng)驗(yàn)的專家組成。目前,評(píng)審組有四名有價(jià)值的成員。他們自愿根據(jù)插件審查員手冊(cè)使用官方工具審查插件。
他們還調(diào)查整個(gè) WordPress 社區(qū)的準(zhǔn)則違規(guī)、安全問(wèn)題和開發(fā)人員的行為,包括支持論壇、WordCamps 和評(píng)論。只有保持編碼標(biāo)準(zhǔn),您才能通過(guò)這些看門人。這就是為什么在開發(fā) WordPress 插件時(shí)需要遵循最佳實(shí)踐的原因。
12+ WordPress 插件開發(fā)最佳實(shí)踐
如果您的插件沒(méi)有得到審核團(tuán)隊(duì)的批準(zhǔn),您所有的時(shí)間和努力都將付諸東流。這就是為什么在創(chuàng)建插件時(shí)需要遵循 WordPress 開發(fā)最佳實(shí)踐的原因。您最有可能通過(guò)仔細(xì)執(zhí)行這些步驟來(lái)完成過(guò)濾過(guò)程。
1. 制定明確的戰(zhàn)略

如果沒(méi)有適當(dāng)?shù)挠?jì)劃和愿景,整個(gè)開發(fā)過(guò)程將導(dǎo)致一個(gè)大零。找到目標(biāo)受眾的痛點(diǎn),并為他們提供有效的解決方案。
如果已經(jīng)存在的插件不足以解決您正在解決的問(wèn)題,您只能帶來(lái)一個(gè)新插件。如果你沒(méi)有為他們的產(chǎn)品增加價(jià)值,沒(méi)有人會(huì)用你的插件把他的網(wǎng)站弄得亂七八糟。
因此,引入具有獨(dú)特賣點(diǎn)且易于銷售的插件非常重要。它應(yīng)該增強(qiáng)網(wǎng)站的可訪問(wèn)性并以更簡(jiǎn)單的方式完成所有工作。只有定義明確的策略才能幫助您成功創(chuàng)建和營(yíng)銷插件。
2. 遵循 WordPress 編碼標(biāo)準(zhǔn)
全球有成千上萬(wàn)的 WordPress 開發(fā)人員。他們需要遵循一套規(guī)則來(lái)避免常見(jiàn)錯(cuò)誤、增強(qiáng)代碼可讀性并保持一致性。來(lái)自全球任何角落的任何人都應(yīng)該了解代碼片段中的內(nèi)容。只有當(dāng)每個(gè)人都遵循相同的WordPress 編碼標(biāo)準(zhǔn)時(shí)才有可能。
WordPress 有一套特定語(yǔ)言和可訪問(wèn)性標(biāo)準(zhǔn)。它們定義了當(dāng)您使用 CSS、HTML、JavaScript 和 PHP 代碼時(shí)該做什么和不該做什么。您必須遵守這些標(biāo)準(zhǔn)才能創(chuàng)建滿足 WordPress 社區(qū)需求的插件。
3. 謹(jǐn)慎使用命名空間

每當(dāng)您向插件添加函數(shù)、變量和類時(shí),它都會(huì)被扔到全局命名空間中。如果全局命名空間已經(jīng)有其他人編寫的相同函數(shù),則會(huì)發(fā)生沖突并顯示錯(cuò)誤。
這就是為什么你需要為你的函數(shù)、變量和類添加一個(gè)唯一的前綴。前綴可幫助您的插件避免覆蓋問(wèn)題。
例如,如果您的插件名稱是 WP Test Plugin,則您的所有函數(shù)和變量應(yīng)如下所示 –
wp_test_plugin_some_function() 或 $wp_test_plugin_my_variable。
您還可以通過(guò)僅保留第一個(gè)字母來(lái)縮短插件的名稱。在這種情況下,WP 測(cè)試插件將是“WTP”。
4. 將安全作為重中之重
網(wǎng)站安全是每個(gè)網(wǎng)站所有者最重要的事情之一。如果您的插件未能贏得用戶的信任,它就不太可能獲得任何用戶。因此,請(qǐng)投入更多時(shí)間來(lái)確保插件的安全標(biāo)準(zhǔn)。重視以下清理輸入和轉(zhuǎn)義輸出 –
- esc_url
- esc_url_raw
- esc_html
- esc_textarea
- esc_attr
- wp_filter_kses
- wp_insert_post
- esc_textarea
- $wpdb->update
- $wpdb->insert
5. 使用 Nonce 進(jìn)行驗(yàn)證
WordPress nonces 是指一次性令牌,用于保護(hù) URL 和表單免受不必要的操作。當(dāng) WordPress 用戶執(zhí)行刪除或預(yù)覽帖子等操作時(shí),它可以作為他們的唯一標(biāo)識(shí)符。因此,在 WordPress 環(huán)境中使用 nonce 來(lái)驗(yàn)證特定操作。
例如,當(dāng)您要?jiǎng)h除帖子時(shí),URL 會(huì)生成一個(gè) nonce 令牌來(lái)驗(yàn)證請(qǐng)求是否真實(shí)。請(qǐng)參閱下圖以供參考。將鼠標(biāo)懸停在“垃圾箱”選項(xiàng)上,它將向您顯示 nonce 令牌。

如果這個(gè)請(qǐng)求來(lái)自一個(gè)虛假的來(lái)源,它最后不會(huì)有wpnonce部分。這樣可以保護(hù)您免受未經(jīng)授權(quán)的操作。
6.從樣板代碼開始
從頭開始創(chuàng)建新插件需要花費(fèi)大量時(shí)間和精力。您可以開始使用樣板文件。Boilerplate是插件開發(fā)的基礎(chǔ)。它為 WordPress 開發(fā)人員提供了精確且一致的指南。使用熟悉的樣板的一個(gè)優(yōu)點(diǎn)是它允許其他人輕松地為您的插件做出貢獻(xiàn)。
7. 使用 WP_DEBUG 模式

使用 WordPress 時(shí)打開 WP_DEBUG 模式。它將找出您在整個(gè)開發(fā)過(guò)程中犯的錯(cuò)誤。您可以通過(guò)將以下代碼段放在wp-config.php文件中來(lái)啟用調(diào)試模式。
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
結(jié)束開發(fā)過(guò)程后關(guān)閉 WP_DEBUG。否則,它可能會(huì)向您顯示 PHP 通知或其他不會(huì)嚴(yán)重影響插件的小錯(cuò)誤通知。我們建議在實(shí)時(shí)環(huán)境中禁用調(diào)試模式。
8. 保持清晰的文件夾結(jié)構(gòu)
保持清晰且組織良好的文件夾結(jié)構(gòu)是 WordPress 插件開發(fā)的必要條件。它對(duì)開發(fā)人員也很有幫助,因?yàn)樗@示了整個(gè)工作流程。
不要忘記將不同類型的文件放在指定的文件夾中。例如,將圖像保存在/images文件夾中,而不是其他任何地方。
這是您的插件的示例文件夾結(jié)構(gòu) –
/plugin-name
plugin-name.php
uninstall.php
/languages
/includes
/admin
/js
/css
/images
/public
/js
/css
/images
確保你的根目錄有plugin-name.php文件和uninstall.php文件。在所有子文件夾之間保持適當(dāng)?shù)膶哟谓Y(jié)構(gòu)。
9. 添加 Readme.Txt 文件
如果沒(méi)有完整的 readme.txt 文件,您的插件將無(wú)法通過(guò)審核團(tuán)隊(duì)。促進(jìn)插件的分發(fā)過(guò)程至關(guān)重要。自述文件包含以下信息:
- 插件名稱
- 貢獻(xiàn)者姓名
- 所需的 PHP 版本
- 所需的 WordPress 版本
- 標(biāo)簽
- 許可證信息等
讓我們以下面的 readme.txt 文件為例。
=== Plugin Name ===
Contributors: (this should be a list of wordpress.org userid's)
Donate link: https://example.com/
Tags: tag1, tag2
Requires at least: 4.7
Tested up to: 5.4
Stable tag: 4.3
Requires PHP: 7.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Here is a short description of the plugin. No markup here.
您可以在文本末尾添加插件的簡(jiǎn)短描述(少于 150 個(gè)字符)。超過(guò)此限制的任何內(nèi)容都將被切斷。但是,您可以在文本文件的下一個(gè)描述部分中添加有關(guān)插件各個(gè)方面的更多信息。
10.關(guān)注國(guó)際化
WordPress 在世界上每個(gè)可以使用 Internet 的地方都可用。為什么你會(huì)錯(cuò)過(guò)這個(gè)全球觀眾?
因此,強(qiáng)調(diào)為更廣泛的受眾國(guó)際化插件的重要性。使用 gettext 庫(kù)使您的字符串可翻譯。您可以從這個(gè)關(guān)于國(guó)際化的 WordPress 指南中了解更多信息。
11. 只包含必要的內(nèi)容
不要過(guò)度使用您的代碼。僅加載使插件對(duì)用戶有用和有用的內(nèi)容。僅使用樣式表、JavaScript 和其他用于特定目的的代碼片段。
12. 在需要時(shí)使用工具和服務(wù)

您可以使用WordPress 插件開發(fā)工具以更簡(jiǎn)單的方式開發(fā)您的插件。
用于應(yīng)用代碼的文本編輯器、用于傳輸和共享文件的 FTP 客戶端以及暫存環(huán)境。開發(fā) WordPress 插件時(shí)需要用到的這三個(gè)工具和服務(wù)。
您可以在整個(gè)開發(fā)階段采用敏捷開發(fā)方法來(lái)加快部署過(guò)程。
我們建議使用Codeception 等軟件測(cè)試工具來(lái)衡量插件的狀況。您可以根據(jù)標(biāo)準(zhǔn)編碼標(biāo)準(zhǔn)測(cè)試您的產(chǎn)品,并使用此工具確定用戶體驗(yàn)的性質(zhì)。
額外提示——要避免的常見(jiàn) WordPress 開發(fā)錯(cuò)誤
作為初學(xué)者級(jí)別的開發(fā)人員,您可能會(huì)犯數(shù)百個(gè)錯(cuò)誤。有些錯(cuò)誤是關(guān)鍵的,而有些錯(cuò)誤是由于微不足道的原因而發(fā)生的。WordPress 開發(fā)人員通常會(huì)犯以下常見(jiàn)錯(cuò)誤。
- 關(guān)閉調(diào)試模式
- 較少關(guān)注 SQL 注入風(fēng)險(xiǎn)
- 不遵守 WordPress 設(shè)定的規(guī)則
- 從網(wǎng)上尋找快速解決方案
- 使用不必要的 CSS 和 JavaScript 文件
- 未能從 WordPress 核心功能中獲益
- 不了解最新技術(shù)
- 未能正確管理許可證
WordPress 插件開發(fā)的常見(jiàn)問(wèn)答

WordPress插件開發(fā)容易嗎?
根據(jù)您要添加的功能和特性,制作 WordPress 插件既容易又困難。您可以使用單個(gè) PHP 行創(chuàng)建一個(gè)插件,但這無(wú)濟(jì)于事。但是,構(gòu)建一個(gè)功能豐富的 WordPress 插件并不容易。
制作一個(gè) WordPress 插件需要多長(zhǎng)時(shí)間?
開發(fā) WordPress 插件沒(méi)有固定的時(shí)間段。根據(jù)復(fù)雜性,它可能需要一天到一個(gè)月或更長(zhǎng)時(shí)間。但是,這是一個(gè)持續(xù)的過(guò)程。您需要添加新功能和錯(cuò)誤修復(fù)以保持插件的相關(guān)性和功能性。
通過(guò)銷售 WordPress 插件我能賺多少錢?
這取決于很多因素。如果您有大量定期使用您的插件的客戶群,您每月甚至可以賺取 10 萬(wàn)美元。而且,如果您的插件的專業(yè)用戶為零,您的收入將為 0 美元。所以,這個(gè)問(wèn)題沒(méi)有明確的答案。
如何將插件上傳到 WordPress 存儲(chǔ)庫(kù)?
將插件添加到 WordPress 存儲(chǔ)庫(kù)是一個(gè) 5 個(gè)步驟的過(guò)程。先快速瀏覽一下列表。
第 0 步:清楚了解插件結(jié)構(gòu)
第 1 步:遵循社區(qū)指南
第 2 步:設(shè)置唯一的插件名稱
第 3 步:驗(yàn)證自述文件
第 4 步:提交您的插件以供批準(zhǔn)
第 5 步:將您的插件存儲(chǔ)在 WordPress Subversion ( SVN) 存儲(chǔ)庫(kù)
要了解詳情內(nèi)容,請(qǐng)查閱:如何將插件上傳到 WordPress 存儲(chǔ)庫(kù):初學(xué)者的分步指南。
如果你是新手開發(fā),可以看下專題《WordPress 插件開發(fā)教程》




