Error: call_user_func_array() expects parameter 1 to be a valid callback

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

Answers 5

  • 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.


  • 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.


  • 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;
    }
    

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

  • 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';
    }
    

Related Questions