启用插件时,有时会出现错误提示,“The plugin generated xxxx characters of unexpected output during activation”,中文提示为“这个插件在启用的过程中产生了 XXXX 个字符的异常输出。如果您遇到了“headers already sent”错误、联合 feed(如 RSS)出错等问题,请尝试禁用或移除本插件”。如何才能查看具体的错误是什么呢?

这种情况可能是任何错误引起的,只有知道错在哪里,才能修改。但显示这个错误有点麻烦,通常的做法

  • 查看错误日志——可惜错误日志中找不到这条错误
  • 开启debug模式——即使在wp-config.php中开启debug,也不显示这个错误。

解决方法

安装Debug "unexpected output" During Plugin Activation即可

后面的就没啥用了,2014年更新…

这里找到了解决方法,你可以打开插件的主文件,添加下面的代码

add_action('activated_plugin','save_error');
function save_error(){
    update_option('plugin_error',  ob_get_contents());
}
echo get_option('plugin_error');

这段代码将错误信息保存到wp-options表中,option_name是“plugin_error”,要获取这个字段的值只需要调用

 get_option('plugin_error');

这样,启用插件时,除了会显示WordPress默认的那段信息,还会在顶部显示错误。

用update_option()存储字段,是一种添加操作,每产生一条新错误,都会添加到这个字段中,所以最后一条才是最近的错误信息,有点类似错误日志。

如果不想产生数据库操作,还可以将错误信息直接写进一个临时文件中。

add_action('activated_plugin','save_error');
function save_error(){
	file_put_contents ( 'C:/text.txt' , ob_get_contents() );
}

11条留言

  1. 不走运啊,现在遇到这个问题了,只是我很纳闷,我下载最新版本的插件传到2个新的wordpress站点,居然其中一个就提示输出异常字符串564个,晕啊,要说是插件问题,可是传另外一个站点确没问题,有问题这个我还重新安装程序还是有这个破提示

    1. 如果服务器关闭所有报错显示,那插件有个warning也不会显示。
      WordPress既然提示了错误,那个插件多少都是有问题的。

      1. 插件是Better WP Security,一个安全管理设置软件,不知道你有没有研究过

        1. 知道这个插件,很久以前可能装过那么一次╯□╰ 我的了解程度,你知道的吧(*^__^*)

  2. 解决方式是确保 在 之外没有空格或者其他字符。

    1. 被屏蔽了? 之外

      1. 你说的是php标签之外么,< ?php ?>普通用户发会被过滤掉

        你说的只是其中一种情况,WordPress的插件机制保证如果插件会产生warning甚至fatal error,就无法启用,保证网站不受影响,这是使用插件比较安全的理由之一。 而产生错误的情况不止这一种。

评论功能已关闭