由于意外输出导致插件激活错误

时间:2018-08-17 作者:Vijay Chavda

我激活插件时出现以下错误:

该插件在激活期间生成了22个字符的意外输出。如果您注意到“headers ready sent”消息、联合提要问题或其他问题,请尝试停用或删除此插件。

下面是我的插件代码:

<?php
/*
Plugin Name: Hello World
*/

    echo "<h1>Hello, world!</h1>";

?>
我知道我们通常在代码中出现语法错误时会遇到这种错误。我查过了没有空格,\\n, \\t, \\r 或文件开头或结尾的任何特殊字符。

我不明白,这是一个人能创建的最简单的插件,怎么了?

<小时>

EDIT 1:

如果删除echo "<h1>Hello, world!</h1>"; 线

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

在发送标头之前加载插件。原因是您应该能够为每个插件发送自己的标题。

这就是为什么主插件文件不能创建直接输出。包装您的echo 将代码编写到函数中,并将该函数注册为回调函数,以便稍后在发送标头后执行操作。

结束

相关推荐

REGISTER_ACTIVATION_HOOK()不激活插件

我正在写一个插件,在激活时必须在数据库中创建一个新表。为此,我使用:register_activation_hook( __FILE__, \'createTable\' ); 当我运行激活时,我的插件在数据库中创建新表,但当插件页面重新加载时,我的插件被列为非活动。所以我仍然有链接:激活|删除。为什么会这样?如何修复?以下是我的功能: function createTable(){ $link = mysql_connect(\'localhost\'