当前位置: 首页 > 面试题库 >

插件在激活期间生成X个意外输出的字符(WordPress)

宋飞文
2023-03-14
问题内容

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

该插件在激活期间生成了80个字符的意外输出。如果您发现“标题已发送”消息,联合供稿问题或其他问题,请尝试停用或删除此插件。

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

这是我收到上述错误时的插件代码片段:

function myPlugin( $post ) {
    echo "Whatever is here throws an unexpected output alert when the plugin isa activated";
}
register_activation_hook( __FILE__, 'myPlugin' );

接下来,将函数包装在 if 语句中的插件中;如上所述,它抑制了先前的错误:

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' );

真正导致该错误的原因是什么,以及如何在不遇到问题的情况下有效地使用自己的逻辑完成我的插件?

有没有更好的方法来解决这个问题?


问题答案:

我认为这里可能有两个问题引起了问题。首先,我认为在调用插件激活挂钩时,wordpress不会期望任何输出,因此它可能对此有所抱怨。其次,插件激活挂钩在wordpress程序流程中相当早就被调用,因此,它很可能在发送标头之前被调用。如果在调用之前生成了ANY输出,header()则PHP通常会抱怨。

通常,插件激活例程是为插件的基本设置,对诸如此类set_option()之类的调用保留的。



 类似资料:
  • 我正在用SparkJava和freemarker集成构建一个应用程序。 我正在尝试呈现freemarker模板(实际上不包含变量): 在我的控制器中,我有以下配置: 但浏览器中的结果输出如下: “\u003c!DOCTYPE html\u003e\n\u003chtml lang\u003d\”en\“\u003e\n\u003chead\u003e\n\u003cmeta charset\u00

  • 我有以下代码: 当我尝试在url中加载此内容时: http://xcode.domain.de/add.php?userName=test 我在服务器上遇到此错误: 警告:第15行 /kunden//webseiten/xcode/add.php输入: ''' (ASCII=39)状态=1中的意外字符 分析错误:语法错误,第15行的/kunden/webseiten/xcode/add.php中出

  • 你已经输入了两个整数,n1和n2。返回一个新字符串[],其中包含从n1到n2的数字作为字符串,除了3的倍数,使用“Fizz”代替数字,对于5的倍数使用“Buzz”,对于3和5的倍数使用“FizzBuzz” 生成(2,8) {“2”、“嘶嘶声”、“4”、“嗡嗡声”、“嘶嘶声”、“7”、“8”} 生成(10,16) {“嗡嗡声”,“11”,“嘶嘶声”,“13”,“14”,“嘶嘶声”,16} 我的方法

  • 我是java初学者,我对上述程序的输出感到困惑。请给我解释一下输出的原因。

  • 我已经用声明性服务(DS)组件定义定义了一个OSGi包(),指定了一个导出的服务、一个激活方法和一个停用方法。 在Activate方法的主体中,我需要访问一个文件,该文件不在文件系统中,但绑定在OSGi捆绑包中。在activate方法期间,使用。 这基本上是可行的,但有一种情况是不可行的。在我的应用程序中,

  • <?php $random=sp_random_string();//不指定位数,默认为6位 echo $random; //或者 $random=sp_random_string(8);//指定返回8位随机字符串 echo $random; ?>