WordPress 插件最常見的 10 個錯誤
已發表: 2019-08-27WordPress 最成功的功能之一是它能夠鼓勵開發人員社區通過創建插件來擴展此內容管理系統的基本功能。 這一點以及 WordPress 市場份額近年來沒有停止增長的事實是吸引人才的關鍵。
WordPress插件是最好的。 知道如果您需要自定義您的網站,您只需尋找一個可以滿足您需要的插件就可以做到這一點,讓您高枕無憂。 而且還大大降低了成本。
不必(在大多數情況下)開發定制解決方案是一種解脫。 它以幾年前的一小部分價格實現了對複雜網站的訪問民主化。

但並非一切都是玫瑰花壇。 選擇 WordPress 插件時,我們必須非常小心。 WordPress 的流行吸引了人才。 但它也吸引了經驗不足的開發人員,他們有時會創建不具備所需質量水平的插件。 檢測它們並不像計算它們擁有的正面評級的數量或它們安裝在多少個站點上那麼容易。 它要復雜得多。
自從我們開始分析客戶的 WordPress 安裝以來,我們在 Nelio 遇到的問題是我們可以找到安裝在那裡的垃圾數量。 我們已經看到了你不會相信的事情……
這就是為什麼今天我將解釋這些年來我們在使用 WordPress 插件時遇到的一些最常見和最奇怪的問題。
WordPress 插件問題列表
在這裡,我給您列出了您可以使用 WordPress 插件找到的問題列表。 它們是一般性問題,我們不會給出遭受它們影響的插件的具體名稱,但它們確實存在,您必須小心避免它們。
在數據庫中創建附加表
WordPress 數據庫是一個戰區。 許多插件對其進行了擴展以添加自己的表。 這不一定是錯的,但大多數時候沒有必要。

WordPress 數據庫足夠通用,無需添加新表供您的插件使用。 那麼為什麼開發人員會看到需要向 WordPress 添加更多表格呢? 答案很簡單:舒適和無知。
很多時候,對於沒有 WordPress 經驗的人來說,直接在 SQL 中放置額外的表並進行查詢以讀取和修改數據會更容易。 如果做得不好,除了會成為安全漏洞之外,您還可以避免使用元表。
如果你想擴展用戶信息,你有wp_usermeta表。 內容( wp_postmeta )、評論( wp_commentmeta )甚至分類術語(標籤和類別,帶有wp_termmeta表)也是如此。
WordPress 提供了以標準和安全的方式讀取和修改此元信息的方法。 親愛的 WordPress 開發人員,除非您有性能證明,否則不要在插件中使用額外的表。
加載錯誤的腳本和样式
大多數 WordPress 插件遲早需要加載自己的 JavaScript 和 CSS 文件,有時在 WordPress 管理面板中,有時在網絡前端。 可悲的是,這是經常做錯的事情。

要在 WordPress 中添加 CSS 樣式或 JavaScript 文件,您必須將其排入標準 WordPress 隊列。 為此,首先使用函數wp_register_style和wp_register_script註冊它,然後分別使用wp_enqueue_style和wp_enqueue_script將其加入隊列。
請注意,這些函數允許您定義樣式和腳本所具有的依賴項,因此 WordPress 可以正確管理依賴項並僅將您需要的內容加入隊列。
其他任何事情都是錯誤的。 在這裡,即使是開發人員文檔也是罪魁禍首。 查看 WordPress Codex 中wp_head掛鉤中的示例。 開發者會以此作為參考,然後會發生什麼是他們破壞了東西?
甚至不要考慮使用wp_dequeue_script或wp_dequeue_style從 WordPress 中取出腳本或樣式。 很多時候,我們已經看到插件如何將 WordPress 附帶的 jQuery 版本出列以添加自己的(通常已過時),然後一切都停止工作......
如果您檢測到一個插件沒有按照 WordPress 指南正確加載腳本和样式,這足以立即從您的安裝中禁用它。
停用插件時不清理數據庫
這是 WordPress 插件的另一個經典方面,也許是您會發現的最常見的方面。 為了工作,WordPress 插件需要在您的數據庫中添加記錄。 這裡的問題是,當您停用插件時,這些記錄通常會永遠保留在您的數據庫表中。
當您停用它們時,WordPress 插件通常不會刪除它們在您的數據庫中創建的數據。 不,沒有垃圾車會時不時路過,帶走這些無用的數據。
WordPress 插件應該在用戶停用它時刪除它創建的附加表以及它添加到標準表中的數據。 但它很少發生。 我鼓勵您訪問您的數據庫並密切關注它。 你肯定會在那裡找到無用的垃圾。

如果開發人員很小心,停用 WordPress 中的插件會詢問您是要暫時還是永久停用它。 後一個選項將擦除它在操作期間添加的所有數據,從而取出垃圾以保持一切清潔。
不提供用戶指導
當您安裝 WordPress 插件並激活它時,您通常希望 WordPress Dashboard 上出現一個新菜單,您可以在其中找到插件的功能。 但情況並非總是如此。

有時新插件會在現有菜單中添加一個菜單,通常是“工具”菜單或“設置”菜單。 因此,用戶必須調查以查看包含剛剛安裝和激活的新插件的菜單在哪裡。
在插件的README.txt文件中描述在 WordPress 中激活插件後會發生什麼通常是一個好習慣。 這樣可以減少用戶的焦慮,讓生活更輕鬆。 否則,如果用戶找不到插件添加的功能在哪裡,他們最終會停用它,作為開發人員,這是你最不想發生的事情。
您可能認為這只是新手才會發生的事情。 但事實並非如此。 最近,我安裝了某個插件來做某些事情(我提醒你我要避免命名?),我發現自己也遇到了同樣的情況。 我找不到插件設置在哪裡。 如果它發生在我應該已經使用 WordPress 很長時間的人身上,同樣的情況對於經驗較少的人來說是可怕的。

更改 WordPress 用戶界面
WordPress 易於使用,至少他們是這麼說的。 這要歸功於 WordPress 默認包含的用戶界面。 這個界面在新的 WordPress 安裝中很簡單,但隨著我們添加越來越多的插件,它變得更加複雜。
此外,WordPress 插件的一個常見問題是它們有時使用與用戶期望在 WordPress 儀表板上找到的完全不同的用戶界面。

我知道,從設計師的角度來看,WordPress 用戶界面有些無聊,但有時遵循用戶習慣的相同樣式和相同的用戶體驗比選擇完全不同的解決方案要聰明得多。
在我們的插件中,我們嘗試保持相同的 WordPress 樣式,並將用戶界面的每個元素放在我們認為用戶期望它出現的位置。 但是我們已經看到許多插件界面看起來很少或根本不像 WordPress,讓用戶感到困惑。
建議是,如果您是 WordPress 插件的設計者,請遵循 WordPress 樣式指南,甚至可以重用它現在提供的組件來在 React 中創建接口,直接從 Gutenberg 塊編輯器導出。 我們在 Nelio A/B 測試的改造中使用它們,它們很棒。
侵犯您財產的界限
從開發人員的角度來看,WordPress 儀表板有兩種不同類型的區域。 一方面,我們有私人區域,即特定插件添加的那些頁面。 在這些區域內,只有那些頁面所屬的插件包含的 CSS 樣式和腳本才應該被排入隊列。
另一方面,我們有公共區域,這是 WordPress 中默認提供的所有區域。 公共區域的示例是內容編輯器、菜單或小部件編輯器、設置等。

遵循 WordPress 指南的編程良好的插件會將僅影響其私有區域的腳本和样式排入隊列。 這意味著當他們將這些資源排入隊列時,他們在代碼中有一個條件來檢查他們是否嘗試在自己財產的私有頁面上執行此操作。 否則,他們不會將超出該範圍的任何內容加入隊列。
不幸的是,有很多插件“忘記”在他們的代碼中包含這個條件。 這會導致他們的 JavaScript 代碼和样式始終加載到所有頁面上,這可能會破壞其他常見頁面甚至其他插件的私有頁面。
檢測它比看起來更容易。 如果您正在使用一個插件並且它的用戶界面看起來很糟糕,那麼很可能另一個插件將 JavaScript 或 CSS 放在了不應該放置的地方,並且破壞了第一個插件的樣式和行為。 我們已經看到了。 它發生在我們身上(他們破壞了我們的界面),不幸的是,它會繼續發生。
不遵循良好的編程習慣
您不必是世界上最好的黑客就可以在 WordPress 中編程,但在編程方面需要最低質量。
WordPress 的好處之一(如果不是最大的話)是它的開源理念。 探索插件的源代碼是你總能做的事情(至少官方存儲庫中的那些插件)。

你可能會找到一切:好看的代碼和會讓你哭的代碼。 從性能的角度來看,這並不意味著一個比另一個差。 但是,如果您看到記錄良好、縮進良好的代碼,並且按照文件和文件夾的邏輯分佈進行結構化,那麼您已經找到了聖杯。
如果一個 WordPress 插件的代碼很好看,那可能是因為程序員的細心和打磨。 這是質量的明顯標誌。
打開安全漏洞
WordPress 插件只不過是一組代碼指令。 通常是 PHP 和 JavaScript,它們擴展了 WordPress 的功能。 這段代碼將非常安全地從用戶那裡獲取數據並最終在屏幕上呈現信息。

如果您未正確處理該數據,則在獲取數據並將其打印在屏幕上時,您可能會添加安全漏洞。 WordPress 非常重視驗證和清理輸入數據以及轉義輸出數據。
有很多函數可以驗證數據並確保用戶輸入插件的內容確實是我們想要的,從而避免代碼注入。 如果插件開發者不使用它們,那是由於懶惰或無知。 小心你最終在 WordPress 中安裝的內容,否則你最終會後悔的。
進行不合適的活動
繼續上一節,那裡有來自可疑來源的插件。 有時,為了節省一些錢,您會在 Internet 上的陰暗處尋找包含您想要但不想付費的插件的.zip文件。

當您找到它時,一切都是幸福的,直到您意識到該插件帶有禮物。 從爬蟲、加密貨幣礦工、垃圾郵件,甚至可以控制您的網站的惡意代碼。 你可以找到一切。
請注意您在那裡找到的插件的來源。 官方 WordPress 存儲庫和最知名的市場是 WordPress 插件的唯一可靠來源。 要進入這些存儲庫,插件開發人員需要通過一些質量測試。 只信任已知的地方,避免從不可靠的來源獲得插件。
不增加價值
WordPress 插件可能犯的最嚴重錯誤是沒有為用戶增加價值。 作為開發人員,有時您會產生一些您認為對其他人非常有用的瘋狂想法。 事實是,如果您的插件帶來的用戶數量非常少,那麼它最終將獲得的用戶數量將是相似的。
官方 WordPress 存儲庫中有許多價值較低的插件。 但這是在任何市場或應用程序存儲庫中都會發生的事情。
如果作為開發人員您想在競爭中脫穎而出,請專注於為您的潛在用戶提供價值。 這樣,您的插件最終獲得了在 WordPress 中取得成功所必需的受歡迎程度。
選擇 WordPress 插件很複雜
並非一切都基於用戶評論的數量和星數。 選擇一個好的 WordPress 插件很複雜。 有許多隱藏的驚喜只有通過分析插件本身的源代碼才能發現。 如果您沒有了解它的知識,請小心。
查看您會在存儲庫內的插件支持論壇中找到的評論,以了解人們對它有什麼問題。 在受控環境中試用該插件,如果您發現異常情況,請聯繫開發人員尋求幫助。
如果在此之後您對所看到的內容不滿意,請尋找替代方案。 有成千上萬的插件等著你。 或者在下面給我們留言。 我們一直在尋找新的有趣插件的想法來添加到我們的收藏中。
Goh Rhy Yan在Unsplash上的特色圖片。
