插件激活期间如何输出消息


10

我正在开发插件,但是在激活短语期间,我经常遇到错误。但是,没有简单的方法来显示错误消息,因为回声会导致“未精确输出”错误。我尝试了admin_message钩子,但是它不起作用。如果激活的某个阶段由于某种原因而失败,我该如何警告用户?

Answers:


9

出于测试目的,您可以使用日志系统(php_error.log):

error_log('Plugin activated', 0);

// Check for DB table existance
if(!$this->hasDBTable()){
    error_log('Database not present', 0);
    if($this->createCELabelsDBTables()){
        error_log('Database was created.', 0);
    } else {
        error_log('Error creating the CE Labels Plugin db tables!', 0);
    }

} else {
    error_log('Database OK', 0);
}

要向用户输出错误而不会出现“已发送标题”错误,可以使用php函数trigger_error:

trigger_error('PLUGIN OK',E_USER_ERROR);

使用Wordpress时,必须始终为E_USER_ERROR,否则将不会显示该消息。

我知道error_log自从我正在使用以来就可以完美工作,但是trigger_error显示必须的信息。试试看,看看你自己:)


您知道在哪里可以找到关于error_log函数的更多文档吗?我很难弄清楚如何使其工作。
弥敦道·亚瑟

对于那些可能会追求的人:php.net/manual/en/function.error-log.php
Nathan Arthur,

4

解:

register_activation_hook( __FILE__, 'my_activation_func' ); function my_activation_func() {
    file_put_contents(__DIR__.'/my_loggg.txt', ob_get_contents());
}

将此代码插入插件,然后在出现错误后,在插件文件夹中查看“ my_loggg.txt”。


这对我有用,但是我必须将其放在文件的底部!否则,它不会捕获输出。
Ben Ogorek

0

1)请在内部页面或插件页面中删除多余的空格。

2)删除页面或插件页面中的内联样式。

它每次都为我工作。我已经使用了很多次相同的方法。当插件页面或Wordpress页面出现问题时出现错误。

问候,

希特什·纳格帕尔

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.