當(dāng)前位置:首頁(yè)>WordPress建站>WordPress開發(fā)>WordPress 插件開發(fā)應(yīng)該遵循哪些步驟和要求

WordPress 插件開發(fā)應(yīng)該遵循哪些步驟和要求

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)鍵階段是什么

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)鍵階段如下 –

  1. 更正名稱并考慮商標(biāo)問(wèn)題
  2. 為插件創(chuàng)建文件夾和結(jié)構(gòu)
  3. 將文件頭添加到您的插件
  4. 編寫代碼以使您的插件正常運(yùn)行
  5. 將您的插件部署到 WordPress。

您需要將插件提交給 WordPress 審核團(tuán)隊(duì),然后才能最終對(duì)所有人可見(jiàn)。

在部署插件之前了解 WordPress.org 審核團(tuán)隊(duì)

在部署插件之前了解 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)略

最好的編碼面試準(zhǔn)備網(wǎng)站

如果沒(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)慎使用命名空間

最佳編碼實(shí)踐 - 使用命名空間

每當(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 令牌。

使用 WordPress 隨機(jī)數(shù)

如果這個(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 模式

開發(fā) WordPress 插件/主題時(shí)要避免的常見(jiàn)錯(cuò)誤

使用 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)試模式。

拓展閱讀:WordPress 調(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插件測(cè)試工具

您可以使用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ā)最佳實(shí)踐

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ā)教程

聲明:本站所有文章,如無(wú)特殊說(shuō)明或標(biāo)注,均為本站原創(chuàng)發(fā)布。任何個(gè)人或組織,在未征得本站同意時(shí),禁止復(fù)制、盜用、采集、發(fā)布本站內(nèi)容到任何網(wǎng)站、書籍等各類媒體平臺(tái)。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進(jìn)行處理。

給TA打賞
共{{data.count}}人
人已打賞
歡迎關(guān)注WordPress大學(xué)公眾號(hào) WPDAXUE
WordPress開發(fā)

使用 is_login() 函數(shù)檢測(cè)當(dāng)前頁(yè)面是否為登錄界面

2022-9-12 9:41:56

WordPress開發(fā)

如何將插件上傳到 WordPress 存儲(chǔ)庫(kù):初學(xué)者指南

2022-9-19 11:09:30

0 條回復(fù) A文章作者 M管理員
    暫無(wú)討論,說(shuō)說(shuō)你的看法吧
?
個(gè)人中心
購(gòu)物車
優(yōu)惠劵
今日簽到
有新私信 私信列表
搜索

宁津县| 甘泉县| 丹凤县| 桂林市| 恩平市| 西充县| 乌兰察布市| 邮箱| 屏东县| 屯留县| 雷波县| 新疆| 吴忠市| 余姚市| 通河县| 隆回县| 宁强县| 保定市| 无棣县| 南丹县| 镇康县| 台中市| 杨浦区| 平江县| 翁牛特旗| 阿城市| 东山县| 临澧县| 县级市| 双峰县| 密山市| 望谟县| 和平县| 临江市| 永州市| 阜平县| 盈江县| 东乡族自治县| 黔东| 安乡县| 山阴县|