開發 WordPress 插件或主題時要避免的 9 個錯誤

已發表: 2020-09-30

想要構建 WordPress 插件或主題? 請記住,成功的插件和主題開發包括一些試驗和錯誤。 即使是最有經驗的開發人員偶爾也會弄亂他們的代碼,即使完全避免錯誤是不可能的,但您可以輕鬆避免一些常見錯誤。 為了幫助您,我收集了在開發 WordPress 插件或主題時要避免的九個常見錯誤。

錯誤一:犧牲質量換取快速解決方案

一些開發者在開發小插件或主題時試圖尋找捷徑。 他們編碼不一致,並試圖找到最簡單和最快的解決方案。

然而,事實是沒有簡單的方法來開發一個先進的、功能良好的插件或主題。 一些插件和主題可以相對快速和容易地開發。 例如,開發一個隱藏所有管理員通知的插件或一個注入 JavaScript 片段的插件不會花費很多時間。 但是,當涉及到更複雜的插件或主題時,“作弊”或複制可能會導致功能不佳,並導致各種錯誤和性能缺陷。

即使您只是構建插件/主題原型,遵循有組織編碼的最佳實踐也很重要。 請記住,許多最受歡迎的產品都是從原型開始的。 如果您採用“快速而骯髒”的方法,您將從第一天開始積累技術債務。

開髮乾淨、編寫良好和優化的代碼將使您的開發時間增加 10-30%,但從長遠來看絕對值得。 最終,您將獲得一個可維護、性能良好且功能強大的插件或主題。

錯誤 #2:未能跟踪代碼更改

未能跟踪代碼更改是所有 WordPress 開發人員應避免的另一個常見錯誤。 無論您是否是項目的唯一開發人員,所有主題和插件都應在版本控制下進行管理。

無論您是否是項目的唯一開發者,所有主題和插件都應在版本控制下進行管理。Tweet


版本控制系統通過記錄和跟踪所有更改來幫助您。 這使您和其他開發人員可以在主題或插件進一步開發時處理同一個項目。 此外,版本控制系統(如 Git)會註冊每個開發人員所做的所有更改,這在處理大型項目時特別方便。 如果您選擇使用 Git,我建議使用 GitFlow 作為發布管理的健康分支工作流。

錯誤 #3:沒有使用命名空間

如果您需要為變量、類和函數組創建單獨的區域,命名空間很有用。 這可以防止在 PHP 5.6 及更高版本之前存在的插件衝突,這些衝突無法使用命名空間進行控制。

下面是一個源代碼示例,它說明了 JavaScript 的幾何命名空間。 包的這種定義允許將類 Circle 與其他程序員可以定義的其他類區分開來。

namespace Geometry;

class Circle {
    private $radius;

    public circle($r) {
        $radius = $r;
    }

    public get_radius() {
        return $radius;
    }
   
    public get_area() {
        return pi() * $radius * $radius;
    }
}

錯誤 #4:不使用 WordPress 隨機數

遵循現代安全實踐與確保插件或主題的功能一樣重要。 WordPress 使用 nonce 提供一定程度的保護來驗證請求的真實性。 Nonce 在防止跨站點請求偽造 (CSRF) 攻擊方面特別有用。

要創建隨機數,請使用以下函數。

$nonce= wp_create_nonce( 'name');

如果您不熟悉 nonces,請查看此 WordPress 代碼參考。

訂閱並獲取我們的免費副本

WordPress 插件商業書籍

究竟如何在訂閱經濟中創造繁榮的 WordPress 插件業務。

與朋友分享

輸入您朋友的電子郵件地址。 我們只會通過電子郵件向他們發送這本書,童子軍的榮幸。

謝謝你的分享

太棒了——“The WordPress Plugin Business Book”的副本剛剛發送到. 想幫助我們更多地傳播信息嗎? 繼續,與您的朋友和同事分享這本書。

感謝訂閱!

- 我們剛剛將您的“The WordPress Plugin Business Book”副本發送到.

您的電子郵件中有錯字嗎? 單擊此處編輯電子郵件地址並再次發送。

封面
封面

錯誤 #5:沒有利用 WordPress 核心功能

許多開發人員未能充分利用現有 WordPress 核心功能的全部潛力。 一些主題和插件具有與 WordPress 核心文件相對應的文件,例如 Color Pickers 和 jQuery。

創建額外的文件會增加包的最終大小和加載時間。 您需要定期維護和更新這些文件,這也需要時間和精力。

通過利用 WordPress 提供的功能,您可以創建更輕量級和功能更強大的主題或插件。

正在招聘
高級 PHP 開發人員
構建 Freemius 產品、服務和 API 的核心,看看您對 WordPress 插件和主題業務的直接影響。
電子商務遷移專家
為開始使用 Freemius 銷售的插件和主題企業管理許可證遷移和產品集成流程。
內容營銷人員
通過可操作的書面、視覺和音頻內容分享我們關於銷售插件和主題的最佳方式的知識。

錯誤 #6:將 JavaScript 和 CSS 文件排入隊列

在不需要 JavaScript 和 CSS 文件時將它們排入隊列是另一個常見錯誤。 這可能會導致加載時間變慢並降低搜索引擎排名,因為每個入隊的文件都會添加一個額外的 HTTP 請求。

錯誤 #7:將 JavaScript 代碼放入單個主文件以實現高級主題

如果您正在開發一個使用大量 JavaScript 的高級主題,最好不要將 JavaScript 代碼放入單個主文件中。 許多開發人員選擇將 WordPress 主題 JavaScript 代碼放入一個名為 main.js、theme.js 或 custom.js 的主文件中。 您不想這樣做有幾個原因。 首先,隨著您的主題最終會增長,文件的大小也會增加。 由於此文件將在站點範圍內加載,因此每個頁面的加載時間都會更長。

其次,創建單個文件會使代碼管理變得更加困難。 例如,您將無法放置諸如 wp_dequeue_script() 之類的函數來卸載某些頁面中的代碼以提高速度。

這是一個視頻,對這個主題進行了更多解釋:

請記住,此錯誤僅與具有復雜 JavaScript 結構的高級主題相關。 如果您的主題在 JavaScript 中更簡單、更輕巧,則將 JavaScript 代碼放入主文件不會損害主題的功能。

錯誤 #8:未能創建用於更改代碼的其他選項

當直接對代碼執行自動更新時,所有手動代碼更改都將丟失,除非通過操作和過濾器進行更改。 這就是為更改啟用操作和過濾器如此重要的原因。

這樣,您和其他開發人員將能夠在不編輯插件本身或父主題的情況下修改功能。 此外,您將能夠使用過濾器和操作向父插件或主題添加額外的功能,例如擴展或附加組件。

錯誤 #9:未能使用現代代碼設計實踐

未能使用正確的代碼設計實踐是關閉我們列表的最後一個錯誤。 必鬚根據插件的大小和性質選擇正確的代碼組織。

如果您打算構建一個不需要進一步擴展的小型單用途插件,那麼以後就無需使用具有各種類的複雜架構。

如果您正在構建與其他插件一起使用的插件擴展或需要大量代碼的插件,則最好使用面向對象編程 (OOP) 方法。 OOP 背後的主要思想是將代碼排列成塊,例如更好地組織的類。

另外,我不建議將 PHP 代碼和 HTML 代碼混合在一起。 最好使用模型-視圖-控制器 (MVC) 模式將它們分開,尤其是當您的插件由多個開發人員維護時。

模型-視圖-控制器模式

外賣

正如您在上面了解到的,最常見的錯誤通常是無意的,但它們可能會導致非常令人失望的後果。

在回顧中,最常見的錯誤是:

  1. 犧牲質量換取快速解決方案
  2. 未能跟踪代碼更改
  3. 未能使用命名空間
  4. 不使用 WordPress 隨機數
  5. 不使用 WordPress 核心功能
  6. 將 JavaScript 和 CSS 文件排入隊列
  7. 將 JavaScript 代碼放入單個主文件以實現高級主題
  8. 未能創建用於更改代碼的其他選項
  9. 未能使用現代代碼設計實踐

雖然犯錯是不可避免的,但既然你知道它們是什麼,那麼避免它們會更容易。

您在創建主題或插件時是否犯過任何其他錯誤? 請在下面的評論中分享您的經驗,不要錯過其他 5 個要避免的錯誤。

來自 Alyse Falk 的貢獻。