Plugin.php: PHP Notice: Undefined offset: 0 in

I moved a WordPress site from one domain to another and there were a lot of white spaces that needed to be removed.

The only problem that is left are the following errors:

Read More
  • PHP Notice: Undefined offset: 0 in /home/linguist/public_html/test/wp-includes/plugin.php on line 767
  • PHP Notice: Undefined offset: 0 in /home/linguist/public_html/test/wp-includes/plugin.php on line 785

then further

PHP Warning: Cannot modify header information – headers already sent by (output started at /home/linguist/public_html/test/wp-includes/plugin.php:767)

Its all due to this code which hasn’t been changed at all but is creating errors.

if (is_object($function[0]) ) {
    // Object Class Calling
    if ( function_exists('spl_object_hash') ) {
        return spl_object_hash($function[0]) . $function[1];
    } else {
        $obj_idx = get_class($function[0]).$function[1];
        if ( !isset($function[0]->wp_filter_id) ) {
            if ( false === $priority )
                return false;
            $obj_idx .= isset($wp_filter[$tag][$priority]) ? count((array)$wp_filter[$tag][$priority]) : $filter_id_count;
            $function[0]->wp_filter_id = $filter_id_count;
            ++$filter_id_count;
        } else {
            $obj_idx .= $function[0]->wp_filter_id;
        }

        return $obj_idx;
    }
} else if ( is_string($function[0]) ) {
    // Static Calling
    return $function[0].$function[1];
}

}

Could someone please help me with this?

Related posts

Leave a Reply

3 comments

  1. Some code on your site registers a filter or an action with invalid arguments. The errors you see happen, because add_action() or add_filter() was called with a second argument that is not a string, an object or an array.

    Examples:

    add_action( 'wp_head', NULL );
    add_filter( 'the_content', -1 );
    

    Disable all plugins, switch to Twenty Eleven, and re-enable everything until the errors comes back. Then find all calls to add_action() or add_filter().

  2. You can find out which command is the reason. Add the following code before the line “if ( is_object( $function[0] ) ) {“

    if(!isset($function[0])){
        var_dump($tag);
        var_dump($function);
        var_dump($priority);
        die();
    }
    
  3. PHP Warning: Cannot modify header information – headers already sent by (output started at /home/linguist/public_html/test/wp-includes/plugin.php:767)

    you just put ob_start() in your functions.php at the top of the line.