插件安装不正确,函数被重新声明

时间:2013-09-12 作者:RogerTheShrubber

我安装了一个插件(HC custom WP-Admin url) 在当地,我没有任何问题。我试图在服务器上安装它,但出现以下错误:

Fatal error: Cannot redeclare get_file_description() (previously declared in /home/USERNAME/public_html/wp-admin/includes/file.php:58) in /home/USERNAME/public_html/wp-admin/includes/file.php on line 71

Please note I DID post an error on that plugin\'s page. 我在这里再次发帖,因为我怀疑这不是特定于该插件的,而是一个权限问题,阻止了插件的正确安装。有人有过类似的问题吗?

安装声称已完成,但安装完成后,整个网站都中断了。我甚至无法注销。我发现让网站重新运行的唯一方法是重命名插件文件夹。产生了一个错误,WP停用了插件,一切都恢复了。

1 个回复
最合适的回答,由SO网友:Dave Ross 整理而成

该插件使用了一种非常复杂的方法来查找&;包括文件。php:

if (file_exists(dirname(__FILE__) . $DS . \'..\' . $DS . \'..\' . $DS . \'..\' . $DS . \'wp-admin\' . $DS . \'includes\' . $DS . \'file.php\'))
    include(dirname(__FILE__) . $DS . \'..\' . $DS . \'..\' . $DS . \'..\' . $DS . \'wp-admin\' . $DS . \'includes\' . $DS . \'file.php\');
else
  return; // if hierarchy is messed up, don\'t go further
我的猜测是,它认为您的本地环境“一团糟”,没有尝试包含()文件。问题是,文件。php并不意味着要像那样动态加载,您可以看到当WordPress本身已经加载了一个插件之后,插件尝试加载它时会发生什么。

插件作者应该检查if( !isset( $wp_file_descriptions ) ) 在执行include()或检查之前function_exists( \'get_home_path\' ) 这就是他们试图从那里使用的实际功能。如果存在这些内容之一,WordPress已经包含了该文件,无需再次执行。

结束

相关推荐

Admin user roles/permissions

我有一个我希望能够发布新帖子/页面的用户,但我不希望他们能够访问用户。我可能想让他们访问特定的插件,但不想让他们访问其他插件。有这个插件吗?我没有看到的内置方法?我对如何管理权限有点不知所措。