如何在不编辑插件的情况下修改wordpress插件功能?

Sam*_*LER 5 wordpress plugins function

我正在使用wordpress,我搜索修改插件函数,而不是在更新后编辑不中断函数的插件.

但我还没有找到解决方案.你能帮助我吗 ?

提前致谢

小智 1

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

最好的解决方案(对我有用过几次)是向现有插件添加钩子并提交回原作者,如下所示:

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