Ошибка администрирования шаблона после обновления WP 4.8


Мы используем вышестоящий шаблон на нашем сайте WP. После последнего обновления WP 4.8 мы получаем сообщение об ошибке на панели администрирования, которое не позволяет нам использовать слайд-шоу. Ошибка заключается в следующем:

Неустранимая ошибка: Неперехваченная ошибка: Имя функции должно быть строкой в /var/www/хост/calamburteatro.com/главная/html/wp-контент/темы/вверх по течению/lib/Admin.php:248 Трассировка стека: #0 /var/www/vhost/calamburteatro.com/home/html/wp-content/themes/UpStream/lib/Admin.php (451): Администратор темы->form_callback('featuredposts_s...', массив) #1 /var/www/vhost/calamburteatro.com/home/html/wp-content/themes/UpStream/lib/Admin.php (388): Тематерадмин->optionspagecontentitems(Массив) #2 /var/www/vhost/calamburteatro.com/home/html/wp-content/themes/UpStream/lib/Admin.php (324): Тематический администратор->optionspagecontent()#3 /var/www/vhost/calamburteatro.com/home/html/wp-includes/class-wp-hook.php (298): Тематерадмин->тематерадминистрации (") #4 /var/www/vhost/calamburteatro.com/home/html/wp-includes/class-wp-hook.php (323): WP_HOOK->применение_фильтров(", массив) #5 /var/www/vhost/calamburteatro.com/home/html/wp-includes/plugin.php (453): WP_Hook->действие (массив) #6 /var/www/vhost/calamburteatro.com/home/html/wp-admin/admin.php (222): do_action('страница появления...') #7 /в /var/www/vhost/calamburteatro.com/home/html/wp-content/themes/UpStream/lib/Admin.php в строке 248

Строка 248 на admin.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);
            }
        }

    }

Кто-нибудь может помочь нам с этим, пожалуйста? Заранее спасибо!

Author: Jack Johansson, 2017-06-19

1 answers

Это общий вопрос 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.

Загляните на эту страницу, чтобы узнать подробности об изменении.

 0
Author: Jack Johansson, 2017-06-19 11:07:41