插件在激活过程中生成了意外输出的X字符(WordPress)

插件在激活过程中生成了意外输出的X字符(WordPress)

每次我激活插件时都会收到这样的消息:

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

我能够抑制消息的唯一方法是将激活函数代码包装在如果语句(请参阅下面的片段)。

在这里,当我得到上面描述的错误时,我的插件代码片段:

function myPlugin( $post ) {
    echo "Whatever is here throws an unexpected output alert when the plugin isa activated";}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";
        }
    }}register_activation_hook( __FILE__, 'myPlugin' );

究竟是什么导致了这个错误,我如何才能有效地完成我的逻辑插件而不必遇到它呢?

有什么更好的方法来处理这件事吗?


呼如林
浏览 574回答 3
3回答

不负相思意

我认为这里可能有两个问题导致了这个问题。首先,我不认为WordPress在调用插件激活钩子时期望任何输出,因此它可能会抱怨这一点。第二,插件激活钩子在WordPress程序流中很早就被调用,因此,在发送头之前可能会调用它。如果在调用之前生成任何输出header()然后PHP通常会抱怨。通常插件激活例程被保留用于插件的基本设置,调用如下set_option()还有类似的。

慕标琳琳

我也有同样的错误-3个字符的意外输出,并在这里领先。对于我的场景中的人来说,这条消息的另一个原因可能是将文件类型编码为带有BOM的UTF。BOM编码是导致错误的原因,当插件激活时,它将在InternetExplorer中呈现错误。解决方案是使用记事本+并选择“在没有BOM的情况下转换为UTF”,或者如果您使用的是visual studio,则说明如何更改编码。没有BOM的utf-8
打开App,查看更多内容
随时随地看视频慕课网APP