2 probably reasons:
1) You are doing an output (like echo
or etc) in wrong place.
- Do you want to output a message in
admin
dashboard? – useadmin_notices
hook and output there… -
Do you want to output a message in front-end? – find appropriate places with hooks (like
the_content
orwp_footer
or whatever). -
Don’t output anything either in
register_activation_hook
or outside of WordPress standard hooks, no-one should do that.**
2) if you aren’t doing any output intentionally, then maybe some php
error happens? If so, put this code temporarily in functions.php
and then activate the plugin – you will see the error.
define('temp_file', ABSPATH.'/_temp_out.txt' );
add_action("activated_plugin", "activation_handler1");
function activation_handler1(){
$cont = ob_get_contents();
if(!empty($cont)) file_put_contents(temp_file, $cont );
}
add_action( "pre_current_active_plugins", "pre_output1" );
function pre_output1($action){
if(is_admin() && file_exists(temp_file))
{
$cont= file_get_contents(temp_file);
if(!empty($cont))
{
echo '<div class="error"> Error Message:' . $cont . '</div>';
@unlink(temp_file);
}
}
}