修復和防止 WordPress 插件衝突的終極指南

已發表: 2023-02-16

WordPress 插件基本上可以提供您需要的任何特性或功能,使它們成為任何站點的強大補充。 但是,儘管插件可能非常有用,但它們通常是站點錯誤、錯誤、崩潰、性能問題甚至可怕的死機白屏的中心。

事實上,如果您還沒有遇到白屏死機或登錄後在您的畫廊滑塊或按鈕應該出現的地方看到像素化的藝術品(這一切都歸功於插件),您應該給自己一個當之無愧的表揚!

事實上,我們都知道糟糕的插件可能會帶來問題。 這就是為什麼有很多指南可以幫助我們選擇正確的插件,讓它們保持更新,並了解當插件停止按預期方式運行時該怎麼做。

然而,不那麼簡單的是插件衝突情況以及如何解決它們。

因為插件是由不同的開發人員編寫的,所以幾乎不可能保證一個插件背後的代碼不會與另一個插件、主題或 WordPress 版本的代碼發生衝突! 因此,如果您使用大量插件,衝突遲早會在您的實時網站上導致視覺或功能錯誤(如果還沒有的話)幾乎是不可避免的。

因此,即使您現在沒有身處災難之中,如果發生衝突或發生衝突時,採取預防措施和故障排除技巧來解決衝突也符合您的最佳利益。


跟上插件更新可能會讓人覺得乏味(尤其是當您試圖管理多個 WordPress 網站時),但發布這些更新是有原因的——安全。

漏洞不斷被發現,雖然 WP Engine 努力保持其平台安全,但您網站上的過時插件會使它容易受到攻擊者的攻擊。 使用智能插件管理器,您可以通過自動插件(和主題)更新來卸載這項繁瑣的任務,讓您高枕無憂,因為您的網站是最新的並且得到了妥善管理。 在這裡了解更多。


在本終極指南中,您將了解到:

  1. 什麼是插件衝突,為什麼會發生?
  2. 如何識別衝突:插件衝突錯誤是什麼樣的?
  3. 當您有權訪問管理面板時如何解決插件衝突
  4. 如何修復導致網站崩潰的插件衝突
  5. 預防技巧:如何避免插件衝突

什麼是插件衝突,為什麼會發生?

顧名思義,插件衝突是兩個或多個 WordPress 插件相互衝突的結果。 除此之外,您的其中一個插件和 您的主題,有時甚至是您的 WordPress 版本。

通常,衝突方越複雜或越重要,對您網站的影響就越大。 如果您的主要插件之一或您的主要主題捲入重大衝突,後果必然是視覺或功能混亂。

那麼,為什麼會發生插件或主題衝突?

從技術上講,當雙方試圖執行相互限製或直接矛盾的代碼時,就會發生衝突。

儘管每個插件和主題都有其獨特的職責,但這可能出於多種原因:

  • 由於代碼極其複雜,兩個主要插件之間可能會發生資源衝突,例如您的電子商務庫存和計費插件!
  • 一條壞魚毀了整個池塘,也就是一個插件背後編寫的糟糕代碼可能會限制其他插件,從而導致一切崩潰。
  • 更新插件後,最新版本可能與您的主題不兼容。
  • 批量自動更新可能已經開始了兩個(或更多)插件之間的功能戰爭,這兩個插件都試圖執行影響您實時網站相同工作部分的衝突命令!

…而這樣的例子不勝枚舉。

簡而言之,衝突可能由於多種原因而發生。 這一切都歸結為每個插件或主題背後的代碼以及他們的開發人員為避免潛在衝突而採取的​​步驟!


識別衝突:衝突錯誤是什麼樣子的?

由於多種原因可能會發生插件衝突,因此它們觸發的錯誤也可能具有多種形狀和形式。

從讓網站的某些部分看起來和表現得滑稽到放棄可怕的死亡白屏,插件衝突往往是這一切背後的原因。

儘管插件衝突是 WordPress 網站錯誤背後的常見原因,但僅通過查看錯誤很難確定衝突!

因此,為了排除故障,您不想關注錯誤本身,而是想查看您在自己的網站上留下的訪問和控制級別。

換句話說,衝突會以兩種主要方式影響您的網站。 他們能:

  1. 在您的實時網站上造成錯誤,但您仍然可以訪問您的管理面板和網站。
  2. 導致白屏死機 (WSOD),您的網站崩潰,您被鎖定在管理面板之外。

請記住,這兩種錯誤都可能由其他因素引起。 例如,視覺錯誤的傑作可能是過時的插件或不兼容的主題的結果。 或者 WSOD 可能已經發生,因為您的服務器達到了它的內存限制。

儘管如此,每當您的網站出現任何問題並且基本的故障排除似乎不起作用時,您幾乎可以肯定衝突是真正的罪魁禍首。


當您有權訪問管理面板時如何解決衝突

無論您在網站上遇到什麼問題,如果您仍然可以訪問您的管理面板,那麼地獄還遠未擺脫困境!

通過以下故障排除步驟,您將了解如何識別衝突、查找衝突的插件(或主題)以及修復衝突錯誤——所有這些都來自您的 WordPress 管理面板。 繼續閱讀以了解有關每個步驟的更多詳細信息,但首先,這裡是您需要執行的操作的快速摘要。

在您有權訪問管理面板時修復插件衝突:

  1. 清除瀏覽器緩存。
  2. 確保您的插件已更新。
  3. 通過排除 WordPress 版本或主題衝突來確定它是否真的是插件衝突(為此建議使用暫存站點)。
  4. 在瀏覽器控制台的幫助下追踪導致衝突的插件,或者手動停用和重新激活每個插件,一個接一個。
  5. 更換一個或兩個有問題的插件,然後將錯誤報告給開發人員。

1.清除瀏覽器緩存

瀏覽器的緩存保留舊代碼並且無法反映新代碼是很常見的,尤其是在插件更新之後。 清除緩存只是為了確保不是這種情況。

如果您使用的是 Chrome,請按“ctrl+shift+del” →選擇“緩存的圖像和文件” →選擇“清除” 。 在 Safari 上,按“option+command+E” →選擇“清空”。

2.確保您的插件已更新

登錄到您的管理區域並檢查以確保您的所有插件都更新到最新版本。

3 檢查插件與 WordPress 版本衝突

首先,你會 檢查您的活動插件是否與您當前版本的 WordPress 兼容。 您可以這樣做:

  1. 在 Better Plugin Compatibility Control 等插件的幫助下,它可以查明兼容性問題、重要的待處理更新等。
  2. 通過訪問 WordPress 儀表板中的插件部分並一一檢查每個插件的兼容性來手動進行。
WordPress 管理員的添加插件部分的屏幕截圖,其中包含 Akismet 反垃圾郵件插件和 WordPress.com 插件的 Jetpack。藍色框突出顯示每個下方的部分,內容為與您的 WordPress 版本兼容
手動檢查每個插件的兼容性。

停用不兼容的插件(如果有)。 返回您的網站並檢查一切是否恢復正常。 如果是,很明顯插件和您的 WordPress 版本之間的衝突是您網站問題的原因。

如果錯誤仍然存在,請繼續執行下一步。

4.檢查插件與主題衝突

接下來,您需要確保所有插件和活動主題之間一切正常。

要開始檢測主題衝突,請將您(最好是暫存)站點的主題切換為 WordPress 默認主題。

從您的管理頁面,轉到“外觀”“主題”。 到達那里後, “激活”流行的TwentyTwentyOne主題。 現在檢查您的網站,如果 問題隨著主題的變化而消失然後你發現自己處於主題衝突的中間。 目前,也將您的實時網站的主題更改為默認主題。

現在要找到衝突的插件,返回暫存,重新激活您之前的主題,然後一個接一個地停用您的插件,直到您看到錯誤消失。 如果是這樣,那麼您也將隔離有罪的插件。

現在由您決定,您可以保留插件或主題。 無論哪種情況,請與開發人員聯繫以報告問題,他們可能會修復它!

另一方面,如果即使在主題更改後錯誤仍然存在,那麼您的原始主題也沒有錯。 您的網站很可能遇到兩個插件之間的衝突。 在這種情況下,請重新激活您喜歡的主題並繼續下一步。

5.檢查插件與插件衝突

現在您已經排除了可能的主題和 WordPress 版本衝突,您想要深入了解您的插件。 首先停用所有插件。

轉到插件頁面。 通過選中“插件”旁邊的空框來選擇所有插件。 從“批量操作”下拉菜單中選擇“停用”。

現在返回您的網站並檢查問題是否仍然存在。

如果錯誤隨著所有插件的停用而消失,那麼瞧! 您剛剛隔離並確定了一個插件衝突! 如果不是,那麼可以肯定地說您的插件都沒有問題。 在這種情況下,您可能需要檢查 htaccess 錯誤或聯繫您的託管服務提供商和內部開發人員。

*注意:您是否覺得無法向您的託管服務提供商尋求幫助? 可能是時候切換到託管 WordPress 主機了。

6.找到有罪的插件

如果您的控制台沒有幫助,您將不得不 手動識別有罪的插件。 為此,我們將一一重新激活您的插件 檢查問題何時再次出現。

不要從隨機插件開始,而是首先重新激活您的關鍵插件或可能與問題直接相關的插件。 一次重新激活一個插件並繼續檢查您的暫存站點。

當問題再次出現時,您發現了一個有問題的插件。

要找到另一個,請保持第一個衝突插件處於激活狀態並停用之前重新激活的插件,一次一個。 在這種情況下,當問題隨著另一個插件的停用而消失時,該插件顯然是另一個有衝突的插件。

7.替換並報告有問題的插件

找到有罪的插件後,您可以選擇 停用兩者或次要的。 您也可以嘗試找到替代插件或代碼片段來替換任何一個有問題的插件。

同時,通過電子郵件和支持線程與這兩個插件背後的開發人員取得聯繫,並與您剛剛執行的故障排除屏幕截圖分享衝突的詳細信息。

大多數插件和主題開發人員都努力使他們的代碼完美無缺,因此他們至少應該樂於解決問題或提供有用的信息。


如何解決導致網站崩潰的衝突

臭名昭著的白屏死機或網站崩潰無疑是 WordPress 網站所有者最可怕的噩夢。 另外,站點崩潰通常會導致無法訪問管理面板,這可能非常可怕!

不管多麼令人生畏,好消息是有多種方法可以訪問您的網站和管理面板,即使它們已關閉!

以下步驟將概述其中一種方法:安全文件傳輸協議 (SFTP) 方法, 即使是業餘用戶也可以跟隨訪問他們的網站並輕鬆解決衝突! 繼續閱讀以了解有關每個步驟的更多詳細信息,但首先,這裡是您需要執行的操作的快速摘要。

在您無法訪問管理面板(或看到白屏)時修復插件衝突:

  1. 安裝 (S)FTP 程序,例如 FileZilla。
  2. 連接您的網站。
  3. 通過 SFTP 訪問您的文件以禁用主題和插件。
  4. 如果您重新獲得站點訪問權限,請登錄以從管理面板開始進行故障排除。
  5. 如果您的站點仍處於關閉狀態,請聯繫您的託管服務提供商。

1. 安裝一個簡單的 (S)FTP 程序,例如 FileZilla

流行的 FileZilla 等 SFTP 客戶端讓您只需下載獨立軟件並使用您的憑據登錄即可從您的系統遠程訪問您的站點文件。

前往 FileZilla 網站並安裝最新版本。

2.連接您的網站

當您打開 FileZilla 程序時,您將看到一個 QuickConnect 選項按鈕。

單擊它並輸入您網站的憑據以連接您的網站並訪問其文件。 在這裡你需要:

  1. 您的主機名
  2. 您的用戶名
  3. 你的密碼

您的託管服務提供商應該已將此信息連同您的初始設置文檔一起提供給您,但如果您找不到它,您的託管服務提供商的支持團隊應該能夠提供幫助。

3. 訪問您的文件以禁用插件和主題

連接網站後,您將在右側看到“遠程站點”面板。 在這裡,導航到“public_html” 文件夾。 這會列出您所連接的服務器上您網站的文件和目錄。

在此之下,找到“wp-content”。 在這裡您可以找到您的插件和主題文件。

只需將插件文件夾重命名為您希望的任何名稱,例如plugins-deactivatedplugins-renamed即可一次停用所有插件。 對主題文件夾執行相同操作。

您的網站將自動回滾到您的默認主題和零激活插件。

清除緩存並再次檢查您的網站。 如果網站崩潰背後有衝突,那麼您的網站和管理面板應該已備份!

一旦您重新獲得對 WordPress 管理區域的訪問權限,請按照上一節中討論的步驟進行故障排除,就像您一直具有訪問權限一樣。

如果儘管停用了您的插件和主題,您的網站仍然無法正常運行,那麼網站崩潰背後還有其他原因。 請聯繫您的託管服務提供商,因為您可能已經達到了服務器的內存限制。

解釋如何解決插件衝突的流程圖

預防技巧:如何避免插件衝突

既然您知道如何解決插件衝突問題,您可能還想防止它再次抬起醜陋的頭!

如果您使用大量插件,可能很難完全避免衝突,但是您可以採取一些基本的預防措施來將衝突降至最低。

為了防止 WordPress 插件衝突和白屏死機:

  1. 定期備份您的網站(或確保您的託管服務提供商這樣做。)
  2. 切勿更改您的實時網站。 (改用暫存站點或本地站點。)
  3. 保持插件更新並避免過時的插件。
  4. 避免批量或自動更新。
  5. 將您使用的插件數量限制為您真正需要的插件數量。

1.建立健康的備份習慣

將備份想像成故障保險,以防止您的現場發生任何類型的災難。 當您決定養成定期備份網站的習慣時,您會自然而然地為自己提供巨大的優勢,以應對任何潛在的衝突錯誤。

作為備份解決​​方案,您可以選擇:

  • 選擇託管服務提供商提供的可靠備份產品。
  • 安裝第三方備份插件。
  • 手動備份您的文件。

不用說,如果您手頭有備份,只要您的網站出現任何問題,您都可以輕鬆恢復它。

2. 切勿更改您的實時網站

在安裝或更新插件、主題或您的 WordPress 版本時,直接在您的實時網站上進行操作可能很誘人,尤其是在沒有出現任何問題的情況下!

然而,為了真正避免衝突,您應該考慮設置一個暫存站點或本地站點,也就是您的實時生產站點的克隆,您可以在其中安全地進行更改並在將它們推送到您的實時站點之前對其進行測試!

這樣做比聽起來簡單得多,就像備份一樣,應該由您的託管服務提供商啟用。

3.保持更新,避免過時

雖然新的更新確實會導致罕見的錯誤(這是可以檢測到的錯誤!),但運行舊版本的插件、主題甚至 WordPress 版本會更糟糕!

不僅為了您網站的整體健康,而且為了避免錯誤和衝突,請確保所有內容都已更新。

這也意味著您應該避開過時的插件或最近六個月沒有更新的插件。

4.避免運行批處理和自動更新

當然,自動化有其吸引力,毫無疑問,安排或選擇一批插件更新同時運行可以節省您的時間,但它也有其自身的缺陷!

對於初學者來說,衝突最常發生在批量更新之後。 另外,如果他們這樣做,那麼您必須經歷尋找衝突插件的耗時考驗。

為了將衝突降到最低,請單獨更新每個插件並在每次更新後檢查是否有任何錯誤跡象。 這樣,您將立即知道是哪個插件導致了衝突(如果有的話)。

5. 少即是多

避免插件衝突的最好方法之一當然是一起避免插件! 這可能並非完全可行,但您應該只考慮保留您絕對需要的插件。

在大多數其他情況下,插件可以替換為代碼片段,建議與開發人員坐下來完成工作,而不是依賴第三方插件。


包起來!

長話短說,插件可以挽救生命,但它們也帶來了自己的包袱。 希望本文不僅能幫助您成功隔離和解決網站上的插件衝突,還能更好地理解它們。

除此之外,只要您不斷提高故障排除技能並堅持最佳實踐,您就應該認為自己離無錯誤網站又近了一步!

本文由 Nidhriti Bhowmik 撰寫,最初發表於 2019 年 4 月。最後更新於 2023 年 2 月。