两个插件之间的混淆

时间:2016-11-19 01:02:25

标签: wordpress plugins

我有两个从XML文件导入数据的插件(本地代码 - 不是下载)。

第一个插件工作正常。然后我复制了插件以处理完全独立的XML文件。我重命名了目录/ plugin-name / plugin-code。

当我激活第二个插件时,会发生两件奇怪的事情。原始插件尝试激活第二个插件的导入代码 - 它是如何做到的我不知道。其次,第二个插件在完成后会出现500错误。

我停用了第一个插件并尝试了第二个插件,它运行正常。重新激活第一个插件后,它失败了。

wordpress中是否存在导致此类冲突的内容?

我知道这个问题不是基于代码的,但我想答案是。 我只是不够聪明,不知道wordpress会如何造成这种冲突。

2 个答案:

答案 0 :(得分:1)

插件基本上是一系列功能。通过复制您的插件,您正在复制导致冲突的功能。如果你想复制你的插件,你不仅需要复制和重命名文件夹,而且你还需要在第二个插件中重命名你的函数,否则你将重新声明已经声明的函数。

答案 1 :(得分:1)

不幸的是,您无法使用相同的插件副本。由于编程语言的工作原理,加载相同的插件两次将导致两个版本尝试定义相同的函数和类。 PHP不会代表这一点,并且会因致命错误而死亡。

如果您想在此之前使用该插件,则可以重命名该插件文件的类和功能。检查功能存在的主要原因。

if ( ! function_exists( 'my_awesome_function' ) ) {
/**
 * My Awesome function is awesome
 *
 * @param array $args
 * @return array
 */
function my_awesome_function( $args ) {
  //function stuff
  return array();
  }
}

在上面的代码中,这将检查函数是否不存在然后声明它。