如今,编写<WP 3.x兼容插件的重要性是什么?


8

我目前正在编写一个带有自定义帖子和几个功能的简单插件,使用帖子元数据并将几个变量添加到数据库的“选项”表中。在研究期间,我在WP Codex中看到了一些有关使该插件向后兼容WP 3.x之前的版本的参考,我只是想知道现在纳入这种兼容性有多重要。

例如,我见过(由客户端安装)的WP最旧的版本是3.2或附近。我无法想象许多人的东西都早于3.x,但我可能是错的。我知道从理论上讲,您应该始终尝试使其完全兼容,但实际上,有人知道包含该功能有多么重要吗?

谢谢


5
请解释一下X3.X。在WordPress版本控制架构中,XY主要版本。因此,3.0的重要性不超过3.1。另外:此问题可能不太适合撰写本文的WPSE,因为它可能会征求意见和讨论,而不是基于特定专业知识的答案。
Chip Bennett

1
我以为我读到一些内容,说2.9之后的WP发生了显着变化,这就是我的意思。如果可以更清晰地进行,请随时进行编辑:)
Mike Stumpf

Answers:


10

始终编​​写当前版本的插件,并记住即将发布的版本的夜间版本。没关系。

@toscho 编辑在评论中指出:

可能有需要为什么一些解释这样的。

  1. 因为我这么说。
  2. 插件只需要与核心兼容,因为如果所有插件都遵循规则,那么一切都不会失败。如果一个插件不符合规则,则说明存在错误。该错误需要修复,不需要其他任何修复,也不需要其他插件或主题。
  3. 用户不更新WordPress是由于使用了有问题的插件而导致的,这些插件如果没有大量工作就不会被丢弃在系统中。如(2)所述,您不必担心这些bug。这些错误需要修复,而不是考虑到损坏的第三方代码的插件。
  4. 旧版代码不需要任何支持。需要更换。不是你的问题。
  5. 在主要的XX版本上,情况发生了很大的变化。当您尝试支持早期版本时,通常需要不同的解决方法和大量的版本检查。那就是(a)维护的噩梦(b)增加了代码库(c)使得单元测试无法进行,因为它们必须在一个版本上运行-不少于更多,最后(d)减少了服务器磁盘空间和性能(在在大多数情况下)。
  6. WordPress已经有一个非常老的代码库,在很多方面都没有改进。简而言之:WordPress较旧,使用不再受支持的PHP版本作为最低版本,因此您已经以比应用程序的公共API更低的级别支持以前的版本。

现在问问自己:

当您已经支持不再受支持的PHP版本时,为什么要支持其创建者甚至不支持的应用程序?


请在回答中添加解释:为什么
fuxia

尼斯:)这很有意义。感谢您的帮助
Mike Stumpf

5

记住WordPress 3.0的发布需要PHP5。当时,许多托管公司尚未在其服务器上运行PHP5。因此,一段时间以来,一些WordPress网站可能无法更新到WordPress 3.0,因为其托管公司未使服务器保持最新状态。

自WordPress 3.0发行以来已经过去了3年多,因此与WordPress <3.x向后兼容并不是很常见的插件。


好的,我不知道。不过,这很有意义。谢谢!
Mike Stumpf

5

大多数WordPress安装已过时。当前,所有安装中只有5.2%在最新版本3.6上运行。
27.3%的版本仍在3.0版上。

您可能会认为您必须使用兼容的代码来支持这些旧版本。但是请考虑一下含义:

  • 您必须测试所有正式支持的版本。
  • 您必须处理不兼容的API,例如媒体上传器,该API在3.5中发生了巨大变化。
  • 您让您的用户认为不升级WordPress是可以的,因为它仍然有效。
  • 您需要更多的代码,更多的测试和更多的时间来支持做同样的事情。

这些用户甚至可能不会安装您的插件,因为他们知道已经有新的插件破坏了他们的网站。在市场占有率方面,您可能会通过向后兼容的代码赢得一些收益。在效率方面,您会损失。


谢谢您的意见。我没有那个图表,这是一个很好的资源。你说的很有道理。
Mike Stumpf

4

我编写的插件的经验法则是支持当前版本减去-1,因此我编写的所有插件都将与3.6.x和3.5.x兼容。虽然特定的插件可能在较早的版本上可用,但如果遇到问题,我不保证也不支持它。


3

四个月前,我接管了一个流行插件的维护工作。在我开始工作之前,该插件两年没有更新了。我修复了许多错误,发布了新版本,两天后,有人听到一个人说新版本在他的网站上造成了白屏死机。经过研究,他仍在运行WordPress 2.9.2,而我的更新使用了3.0中引入的home_url函数。我不知道他为什么决定立即更新此插件,即使他3年没有更新WordPress了。当我制作新版本时,我从未想到要测试WordPress 2.9.2。

这是故事的寓意:在插件的readme.txt文件中,标题中有一个“至少需要”版本号。用它。进行更新时,如果不想测试旧版本,请对其进行递增。这将阻止拒绝更新其WordPress安装的用户更新您的插件。

我目前正在编写一个新的相关插件,并且正计划仅将其制作为WordPress 3.6,因为我想使用核心中包含的getid3库。我不想发布用于旧核心版本的新插件。


感谢您的建议。我打算针对从3.6开始的几个版本进行测试,但我可能只会像提到的@JohnG那样进行测试。谢谢!
Mike Stumpf
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.