意外输出:具有命名空间的REGISTER_ACTIVATION_HOOK

时间:2014-06-28 作者:obstschale

在使用register_activation_hooknamespace.

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

即使使用这个简单的插件,我也会遇到这个错误:

<?php
/**
 * Plugin Name: Sample Plugin
 *
 */
namespace Sample;

register_activation_hook( __FILE__, \'sp_activate\' );
function sp_activate() {

}
如果我删除namespace 错误不会发生。我错过什么了吗?这里怎么了?

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

当我们在Sample 命名空间,我们应该通过\\Sample\\sp_activate(), 因此,请尝试以下操作:

<?php
/**
 * Plugin Name: Sample Plugin
 * Version:     0.0.2
 */

namespace Sample;

\\register_activation_hook( __FILE__, \'\\Sample\\sp_activate\' );

function sp_activate() {

}
如果在插件激活期间打印出一些内容,则会导致意外的输出消息。如果您使用例如echo \'Hello\'; 在您的激活功能中,它将生成这样一条5个字符的消息。

您应该考虑使用WP_DEBUG_LOG 并将错误记录到一个文件中,以查看出现的错误类型。

我希望这有帮助。

结束

相关推荐

为什么激活插件在REGISTER_ACTIVATION_HOOK中不起作用

我试图在激活第一个插件的同时自动激活第二个插件。register_activation_hook(__FILE__, \'example_activation\' ); function example_activation() { include_once(ABSPATH .\'/wp-admin/includes/plugin.php\'); activate_plugin(\'hello.php\'); } 它在registe