自定义插件/操纵插件:继承这些阻碍更新的可湿性粉剂站点总是一个糟糕的想法?

时间:2016-06-09 作者:Bs3kg

因此,我已经在WP网站上工作了一段时间,我想我已经开始接触到具有独特网站构建的更广泛客户。我最近被分配到的一个网站是一个处理汽车库存的WP网站,它最大的插件真正推动了网站的功能(一个汽车库存插件)。该网站开始出现一些不起作用的问题,对插件进行更新似乎可以解决问题(它落后了4个版本),但他们的老开发人员操纵了插件,并给出了特定的指示,要求不更新插件,因为插件已被更改。你是怎么处理这样的事情的?

另一个例子是我刚得到的一个新站点,它涉及到一个以前的开发人员构建的自定义插件,该插件处理该站点的流程部分(人们挑选软件包并为其付费),它使用一个不推荐使用的对数据库的调用,而我的主机(WPengine)无法使用该调用。在与WPengine支持人员沟通后,客户告诉我,开发人员告诉他不要更新插件,因为这可能会给他的站点带来问题。

我的印象是,你应该总是能够更新你的插件,你永远不应该操纵其他作者的插件,因为这是一种错误的做法,更新会覆盖你的更改。我只是想在这种情况下寻求一些建议。我是应该远离上述网站,还是只是建议重建,还是“禁止操纵”规则有例外。还是我完全偏离了方向,只要你知道自己在做什么,就可以尝试编辑插件?

2 个回复
最合适的回答,由SO网友:Rarst 整理而成

这里似乎有两个独立的问题:

应该这样做吗

在大多数情况下不是这样。修改事实上的第三方扩展将导致it未来维护和/或合并上游(原始)变更的所有影响。

如果没有长期的承诺,这是不现实的,而且很快就会崩溃,就像你亲眼目睹的那样。

是否应该参与其中

这里有几种可能性:

修复已修改插件中的未决问题。这消除了直接的问题,但实际上只是把客户的站点挖得更深

SO网友:cjbj

如果原始插件具有某种形式的GPL许可证,只要您遵守许可证,就可以对其进行操作。因此,编辑插件、主题甚至WP核心在法律上都没有错。

但是,如果您这样做,您将接管原始构建器的更新责任。在某种程度上,你已经成为了一个新插件的作者。如果您不维护它,它就会过时,在某个时候将不再工作或出现严重的(安全)问题。

体面的开发人员行为是尽可能地将原始内容和修改内容分开(使用动作挂钩和子主题),并为未来的开发人员做好记录。

因此,原则上,这种做法没有错。然而,关键不是“知道你在做什么”,而是“确保其他人知道你在做什么”。