我有两个从XML文件导入数据的插件(本地代码 - 不是下载)。
第一个插件工作正常。然后我复制了插件以处理完全独立的XML文件。我重命名了目录/ plugin-name / plugin-code。
当我激活第二个插件时,会发生两件奇怪的事情。原始插件尝试激活第二个插件的导入代码 - 它是如何做到的我不知道。其次,第二个插件在完成后会出现500错误。
我停用了第一个插件并尝试了第二个插件,它运行正常。重新激活第一个插件后,它失败了。
wordpress中是否存在导致此类冲突的内容?
我知道这个问题不是基于代码的,但我想答案是。 我只是不够聪明,不知道wordpress会如何造成这种冲突。
答案 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();
}
}
在上面的代码中,这将检查函数是否不存在然后声明它。