5

我正在使用 wordpress 并且我搜索修改插件功能而不编辑插件更新后不中断功能

但我还没有找到解决办法。你能帮助我吗 ?

提前致谢

4

1 回答 1

1

我多次遇到这个问题。正如其他人所说,您不能修改 PHP 函数。扩展类将不起作用,因为插件将实例化原始类,而不是您的扩展版本。

最好的解决方案(已经为我工作了好几次)是在现有插件中添加钩子并提交回原作者,如下所示:

  1. 如果原始插件在 github 上,请 fork 并克隆它。否则,将原始插件置于git本地控制之下。您可能需要稍后进行差异或回滚。
  2. 创建一个名为 WPML-extensions 的新插件(或其他)
  3. 在原始插件代码中搜索要使用的操作或过滤器。如果它们已经可用并且可以满足您的需要,请通过从 WPML 扩展插件连接到它们来使用它们。
  4. 如果 WPML 插件中不存在正确的钩子,请添加它们,然后按照上述步骤操作。尝试使用最新版本的原始插件,以最大限度地提高您的更改被接受的机会。
  5. 如果您通过添加操作或过滤器修改了原始插件,请执行 agit diff保存补丁,以便稍后重新应用。将补丁提交给原始插件作者并希望最好。如果您只坚持操作和过滤器,作者很可能会立即接受您的更改。
  6. 如果您稍后更新原始插件,则需要重新应用您的更改,直到它们被接受。您可以使用该差异文件。可能有一种方法可以git rebase用来重播您在更新插件后所做的更改。
于 2013-07-24T18:27:53.390 回答