修复和防止 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 月。