我们正在WP网站上使用上游模板。在上次WP 4.8更新之后,我们在管理面板上收到一条错误消息,这不允许我们使用幻灯片。错误如下:
致命错误:未捕获错误:函数名必须是/var/www/vhost/calamburtetro中的字符串。com/home/html/wp-content/themes/UpStream/lib/Admin。php:248堆栈跟踪:#0/var/www/vhost/calamburteatro。com/home/html/wp-content/themes/UpStream/lib/Admin。php(451):materadmin->form\\u callback(\'featuredposts\\u s…\',Array)#1/var/www/vhost/calamburteatro。com/home/html/wp-content/themes/UpStream/lib/Admin。php(388):材料管理->选项页面内容项(数组)#2/var/www/vhost/calamburteatro。com/home/html/wp-content/themes/UpStream/lib/Admin。php(324):材料管理->选项页面内容()#3/var/www/vhost/calamburteatro。com/home/html/wp-includes/class-wp-hook。php(298):材料管理->材料操作(“”)#4/var/www/vhost/calamburetatro。com/home/html/wp-includes/class-wp-hook。php(323):WP\\u Hook->apply\\u filters(“”,Array)#5/var/www/vhost/calamburteatro。com/home/html/wp-includes/plugin。php(453):WP_Hook->do_action(数组)#6/var/www/vhost/calamburteatro。com/home/html/wp-admin/admin。php(222):do\\u action(\'appearance\\u page…\')\\7/in/var/www/vhost/calamburteatro。com/home/html/wp-content/themes/UpStream/lib/Admin。php在线248
admin上的第248行。php是:$callback[0]->$callback[1]();
整个功能代码是:
function form_callback ($name, $attributes = array())
{
if(isset($attributes[\'callback\']) && is_array(($attributes[\'callback\']))) {
$callback = $attributes[\'callback\'];
$callback[0]->$callback[1]();
} else {
if(function_exists($name)) {
return $name($attributes);
}
}
}
有人能帮我们吗?提前感谢!
最合适的回答,由SO网友:Johansson 整理而成
这是一个普通的PHP问题,但回答起来很简单。这个问题很可能是由PHP 7引起的。
只需更改行:
$callback[0]->$callback[1]();
至
$callback[0]->{$callback[1]}();
这是因为
$callback[0]->$callback[1]();
方法
$callback[0]->{$callback[1]}();
在PHP5中
($callback[0]->$callback)[1]();
在PHP7中。
查看this 页面以了解有关更改的详细信息。