Как исправить фатальную ошибку RevSlider в админ-панели после обновления до PHP 7?
Я могу получить доступ к публичной части сайта. Но админ-панель отображается пустой.
Лог показывает ошибку, указывающую на плагин RevSlider:
PHP Fatal error: Uncaught Error: [] operator not supported for strings in /var/www/html/wp-content/plugins/revslider/includes/framework/base-admin.class.php:141
Вот полный стек ошибки:
#0 /var/www/html/wp-content/plugins/revslider/admin/revslider-admin.class.php(1143): RevSliderBaseAdmin::addMetaBox('Revolution Slid...', '', Array, NULL)
#1 /var/www/html/wp-content/plugins/revslider/admin/revslider-admin.class.php(145): RevSliderAdmin->addSliderMetaBox()
#2 /var/www/html/wp-content/plugins/revslider/admin/revslider-admin.class.php(87): RevSliderAdmin->init()
#3 /var/www/html/wp-content/plugins/revslider/revslider.php(327): RevSliderAdmin->__construct('/var/www/html/w...')
#4 /var/www/html/wp-settings.php(304): include_once('/var/www/html/w...')
#5 /var/www/html/wp-config.php(81): require_once('/var/www/html/w...')
#6 /var/www/html/wp-load.php(37): require_once('/var/www/html/w...')
#7 /var/www/html/wp-admin/admin-ajax.php(22): require_once('/var/www/html/w...')
#8 {main}
thrown in /var/www/html/wp-content/plugins/revslider/includes/framework/base-admin.class.php on line 141, referer: https://192.168.16.18/wp-admin/plugins.php

Мне удалось исправить ошибку, применив временное исправление (hotfix) для плагина RevSlider на моем сервере, как описано в этой документации.
В файле revslider/includes/framework/base-admin.class.php
я изменил следующую строку (строка 21 в моей версии) с:
private static $arrMetaBoxes = ''; //метабоксы, которые будут добавлены к записи
на:
private static $arrMetaBoxes = array(); //метабоксы, которые будут добавлены к записи

Отличная работа! Только что обновил сервер до php 7.2, и это очень пригодилось!

Привет, спасибо за ответ! В моем случае я использовал шаблон WordPress churchHope и получал ошибку в /churchope/lib/revslider/inc_php/framework/base_admin.class.php:72 - исправил это, изменив private static $arrMetaBoxes = ""; на private static $arrMetaBoxes = array();

Я должен тебе пиво. +1 за объяснение - в php7 более строгие ограничения на типы, поэтому к пустой строке нельзя что-то добавлять, обращаясь с ней как с массивом. Как упомянул @fuxia, []
тоже отлично работает здесь и выглядит более по-питоновски.

в моем случае revslider находился по пути: my_url/wp-content/plugins/revslider/inc_php/framework

Мы столкнулись с этой ошибкой сегодня при переходе на PHP 7.3, и это исправление сработало идеально. Как упомянул @AlessandroMattiuzzi, путь, похоже, изменился в последних версиях плагина.
