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

时间:2012-11-14 10:45:00

标签: wordpress function plugins

我正在使用wordpress,我搜索修改插件功能而不编辑插件更新后的非破坏功能

但我还没有找到解决方案。你能救我吗?

提前致谢

1 个答案:

答案 0 :(得分:1)

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

最好的解决方案(曾多次为我工作过)是在现有插件中添加钩子并按如下方式提交给原作者:

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