'Wordpress website suddenly gives an error
My Wordpress website suddenly stopped working. I suspect that an automatic update went wrong.
I get the following error:
Warning: Undefined array key 0 in /.../wp-includes/plugin.php on line 957
Warning: Undefined array key 0 in /.../wp-includes/plugin.php on line 960
This is the snippet:
function _wp_filter_build_unique_id( $hook_name, $callback, $priority ) {
if ( is_string( $callback ) ) {
return $callback;
}
if ( is_object( $callback ) ) {
// Closures are currently implemented as objects.
$callback = array( $callback, '' );
} else {
$callback = (array) $callback;
}
if ( is_object( $callback[0] ) ) {
// Object class calling.
return spl_object_hash( $callback[0] ) . $callback[1];
} elseif ( is_string( $callback[0] ) ) {
// Static calling.
return $callback[0] . '::' . $callback[1];
}
}
Can someone help me?
This website contains an inventory in woo commerce and the auto-back-up failed.
Solution 1:[1]
This might be due to a PHP update. I can't really tell, but I can get rid of these warnings. Instead of this:
if ( is_object( $callback[0] ) ) {
// Object class calling.
return spl_object_hash( $callback[0] ) . $callback[1];
} elseif ( is_string( $callback[0] ) ) {
// Static calling.
return $callback[0] . '::' . $callback[1];
}
Use this:
if ( isset( $callback[0] ) && isset( $callback[1] ) ) {
if ( is_object( $callback[0] ) ) {
// Object class calling.
return spl_object_hash( $callback[0] ) . $callback[1];
} elseif ( is_string( $callback[0] ) ) {
// Static calling.
return $callback[0] . '::' . $callback[1];
}
}
I've used the same kind of spacing in that code. By first checking whether $callback[0] and $callback[1] actually exist, you can stop the warnings from appearing. I have no idea what consequences this has for the remaining code.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | KIKO Software |
