7

I have issue after upgrading my wordpress to 3.6 see below for errors which displays on wordpress admin panel not on front of website.

Warning: call_user_func_array() expects parameter 1 to be a valid callback, function ‘regis_options’ not found or invalid function name in wp-includes/plugin.php on line 406

Warning: Cannot modify header information – headers already sent by (output started at wp-includes/plugin.php:406) in wp-includes/option.php on line 571

Warning: Cannot modify header information – headers already sent by (output started at wp-includes/plugin.php:406) in wp-includes/option.php on line 572

1
10

Somewhere in your theme or plugins is a line like this:

add_filter( 'something', 'regis_options' );

Could also be add_action(). Find that piece of code and remove or fix it.

The other errors are a result of the first one. The printed error message causes output and hence HTTP headers, so PHP/WP cannot send other headers anymore. They will go away when you fix the first error.

1
  • 1
    Got the issue the "WP Content Copy Protection" plugin is not compatible with wordpress 3.6 that i have disabled that plugin and THAT WORKS...
    – Sufalamdev
    Aug 3 '13 at 14:42
8
Warning: call_user_func_array()  

It is usually caused by a filter or an action not properly declared.

add_filter ( 'action_tag' , array( $this , 'my_callback' ) , 30 );

The priority must be outside the callback array parameter. this fixed my issue.

1
  • Bless you! This is exactly my problem. Dec 15 '20 at 4:01
2

Hi try this solution :

Add this in functions.php:

function regis_options($args) {
   return $args;
}

Also add this in your class-wp-hook.php:

public function regis_options($args) {
echo '<pre>' . var_export($args, true) . '</pre>';
echo '<pre>' . var_dump(debug_backtrace()) . '</pre>';
return $args;
}
0

I had put a space at the end on my call back string on calling the filter

add_filter( 'something', 'regis_options ' ); 

Instead of

add_filter( 'something', 'regis_options');
0

This error will also happen when you call for a function that does not exist. to solve it you need to define the 'regis_options' function try something like

function regis_options(){ 
echo 'test';
}

Not the answer you're looking for? Browse other questions tagged or ask your own question.