Як я можу виправити фатальну помилку RevSlider на інформаційній панелі після оновлення до PHP 7? [зачинено]


36

Я можу отримати доступ до публічної сторони сайту. Але приладова панель виходить порожньою.

Журнал показує помилку, що вказує на плагін 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

1
RevSlider, AFAICT, є плагіном, характерним для Wordpress. Я намагався revslider.stackexchange.com , але це 404s для мене.
Чапман Етвелл

3
Це може бути невідповідним тут, але мені було найбільш корисно, оскільки ця помилка зробила доступ до адміністратора абсолютно недоступним після оновлення PHP, і виправити це було не проблемою налагодження того, що сталося, а просто застосуванням виправлення з прийнятої відповіді.
Антті Хаапала

Відповіді:


68

Мені вдалося виправити помилку, виправивши плагін RevSlider на своєму сервері, як це підтверджено тут .

У revslider/includes/framework/base-admin.class.phpтакому випадку я змінив наступний рядок (л. 21 моєї версії) з:

private static $arrMetaBoxes = '';         //option boxes that will be added to post

до:

private static $arrMetaBoxes = array();    //option boxes that will be added to post

8
Ви можете використовувати []замість array().
fuxia

Працював для мене у 2018 році!
eyal_katz

2
Чудова робота! Щойно оновлений до php 7.2 на моєму сервері, і це стане в нагоді!
Спенсер Бігум

Привіт, дякую за цю відповідь! У моєму випадку я використовував шаблон wordpress ChurchHope і отримував помилку на /churchope/lib/revslider/inc_php/framework/base_admin.class.php:72 - виправляв це, змінюючи приватний статичний $ arrMetaBoxes = ""; до приватного статичного $ arrMetaBoxes = array ();
Пол Прейбіш

Я тобі завдячую пивом. +1, і для пояснення, у php7 у вас є більш жорсткі обмеження на типи, тому порожній рядок не може щось додавати до нього, обробляючи його як масив. Як згадується @fuxia, []тут також добре працює і є більш піфоністом.
Лігемер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.