每次激活插件时,我都会收到此消息:

该插件在激活过程中生成了80个意外输出的字符。如果您注意到“已经发送”消息,联合提要或其他问题的问题,请尝试停用或删除此插件。

我抑制消息的唯一方法是将我的激活功能代码包裹在条件上(**见下文)。

我应该如何重写以防止警报?

function myPlugin($post)
{
    echo "Whatever is here throws an unexpected output alert when the plugin isa activated";
//I can place code here without issue, but anything that is output via echo throws the alert.
}
register_activation_hook(__FILE__, 'myPlugin');

将功能代码包装在条件上抑制警报:

function myPlugin($post)
{
    global $pagenow;
    if ( is_admin() && $pagenow !== 'plugins.php' ) {
        echo "No more alerts when its wrapped this way";
        }
}
 ?>
有帮助吗?

解决方案

当您收到这种消息时 通常意味着您的插件有语法错误 并且正在生成此类错误消息,因为如何处理激活的加载,在显示错误消息后,即将发送HTTP标头。您的插件的错误消息已加载到 <iframe>;你做了吗 “查看源”<iframe> 看看是否有明显的错误消息?

另外,您应该考虑获得一个可以帮助处理此类事情的HTTP调试器:

  • Windows有 出色的自由的 提琴手.

  • 对于Mac OS X有 httpscoop (不是很好,但很便宜 15美元.)

  • 还有 查尔斯 对于Windows/Mac/Linux (50美元 - 我可能会分解并购买一天。希望我能在Mac上找到提琴手,但是由于提琴手来自Microsoft,所以我不会屏住呼吸。)

更新

根据下面的评论,这是我使用的屏幕 “检查元素” 在Safari中(但是您可以使用Chrome和Firefox做同样的事情,或者与IE和Web开发人员工具栏相似):

Screenshot of Element Inspector on Safari with the WordPress plugin error IFRAME
(资源: mikeschinkel.com)

你可以抓住 <iframe>D URL并将其直接加载到您的浏览器中,以使调试过程更容易。插件中的某些内容正在发送Q header() 抛出了错误消息,这就是该错误消息的含义。

Loading WordPress Plugin Activation URL directly from the browser
(资源: mikeschinkel.com)

顺便说一句,我刚刚添加了一个流浪字符,因此在插件中添加了语法错误,以使其丢弃错误,这就是为什么您会像这样看到错误。

其他提示

使用调试:

(创建日志文件 error_activation.txt 在您的插件文件夹中)

add_action('activated_plugin','my_save_error');
function my_save_error()
{
    file_put_contents(dirname(__file__).'/error_activation.txt', ob_get_contents());
}

sry,为了延迟答案,但我只是偶然发现了,答案真的很简单:

绝不 回声 任何事物 内部功能,用于DE-/激活/卸载挂钩。这将 总是 导致上述错误消息。

我遇到了同样的问题,我尝试删除代码并做了所有事情,但仍然存在同样的问题

对我来说,真正的解决方案是以下内容。

  1. 在包含插件的标题的文件末尾,我删除了关闭php的插件?>将解决问题
  2. 在插件文件的末尾包含插件的标题,插入PHP之后删除了额外的线路断路?>

我的插件文件在第69行结束,最后一个PHP代码之后还有7个间隔,因此在编辑器中,文件最多为66,我的错误是“插件生成了7个意外的字符....”最多69个错误消失了,

我刚刚探索这个问题,我发现问题可能是由PHP中的错误(例如调用不推荐的函数)引起的,WordPress Suprress,FTP垃圾或在“ PHP”标签之外的代码。

我认为迈克上面不正确。意外的输出问题的处理方式与致命错误不同,首先,WordPress抑制了问题,它给出了“意外输出”消息,更重要的是,它实际上确实激活了插件并将其重定向回插件页面,而错误的错误只是死亡。 。我认为在框架中不会有任何有用的东西,我认为标题不会让您允许WordPress没想到的输出,这将为解决基本问题提供线索。

获取意外输出文本有许多解决方案,这些解决方案要求hack plugins.php文件或为“ activate_plugin”操作设置事件处理程序。

fwiw,你可以 找到我的解决方案 镜子 在这里(正在进行的工作!)与其他人的解决方案有一些链接,我从中无耻地借用了这些解决方案!

我也有这个问题。它发生在插件php文件的编码不好。我只是将整个内容复制到新的记事本文件中,然后通过ANSI编码保存。错误消息消失。现在有语言问题,但这是其他情况。问候

在插件文件的末尾删除?>。等式。您的插件名称是location/location.php删除?

许可以下: CC-BY-SA归因
scroll top