在我自己的插件中使用第三方插件中的功能

时间:2015-04-20 作者:donnapep

我目前正在构建一个WordPress插件,其中我需要一些已经存在于另一个插件中的功能。我希望找到一种方法来利用第三方代码,如果它收到更新,我可以轻松地更新自己的插件以包含它们。请注意,我不想让插件成为用户在安装和使用我的插件之前必须安装的依赖项。我宁愿保护用户不受此影响。

我的问题是,实现这一目标的最佳方式是什么?最初,我只是将所需的代码移植到我自己的插件中,这要归功于另一个插件的作者。这并不理想,因为包含更新必须是手动过程。

有可能利用Composer来完成这样的事情吗?有没有其他我没有想到的解决方案?我想这段代码存在于插件中,而不是库中,这一事实让我很反感。

Thx。

1 个回复
SO网友:ianmjones

这实际上取决于要使用的代码的范围,以及是否有包含该功能的操作或过滤器。

您应该能够检查所需的代码是否可以通过以下组合使用class_exists()function_exists() 呼叫。但这将取决于您要使用的类和函数的作用域是否为public, protectedprivate.

如果您能够确定插件已加载,并且很幸运您想要使用的代码被封装在一个操作或过滤器中,那么您应该能够do_actionapply_filters 基于另一个插件将为您处理的假设。但我预计这是一种不太可能的情况。

如果你想要的插件和它的类不存在,你会怎么做呢,只是不启用这个功能?

结束

相关推荐

在加载plugins_后,get_plugins()不工作

知道为什么下面的代码function my_plugin_load() { get_plugins(); } add_action( \'plugins_loaded\', \'my_plugin_load\' ); 抛出此错误?Fatal error: 不应调用未定义的函数get\\u plugins()get_plugins() 定义在plugins_loaded 胡克开火了?如果不是,那么什么才是合适的钩子呢?(这个钩子应该启动插件的引导/加载过程)