Jak mogę naprawić fatalny błąd RevSlider w desce rozdzielczej po aktualizacji do PHP 7? [Zamknięte]

36

Mogę uzyskać dostęp do publicznej strony witryny. Ale deska rozdzielcza jest pusta.

Dziennik pokazuje błąd wskazujący na wtyczkę 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

Oto pełny ślad:

#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
Chapman Atwell
źródło
1
RevSlider, AFAICT, to wtyczka specyficzna dla Wordpress. Próbowałem revslider.stackexchange.com , ale dla mnie to 404.
Chapman Atwell
3
To może nie być odpowiednie tutaj, ale było mi najbardziej przydatne, ponieważ ten błąd spowodował, że dostęp do administratora był całkowicie nieosiągalny po aktualizacji PHP, a naprawienie go nie było kwestią debugowania tego, co się stało, ale po prostu zastosowania poprawki z zaakceptowanej odpowiedzi.
Antti Haapala

Odpowiedzi:

67

Byłem w stanie naprawić błąd, poprawiając wtyczkę RevSlider na moim serwerze, jak tu udokumentowano .

W revslider/includes/framework/base-admin.class.phpzmieniłem następujący wiersz (l. 21 mojej wersji) z:

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

do:

private static $arrMetaBoxes = array();    //option boxes that will be added to post
Chapman Atwell
źródło
8
Możesz użyć []zamiast array().
fuxia
Pracował dla mnie w 2018 roku!
eyal_katz,
2
Dobra robota! Właśnie zaktualizowałem do php 7.2 na moim serwerze i to się przydało!
Spencer Bigum,
Cześć dzięki za tę odpowiedź! W moim przypadku korzystałem z szablonu wordpress ChurchHope i otrzymywałem błąd na /churchope/lib/revslider/inc_php/framework/base_admin.class.php:72 - naprawiłem to, zmieniając prywatną statyczną $ arrMetaBoxes = ""; do prywatnych statycznych $ arrMetaBoxes = array ();
Paul Preibisch
Jestem ci winien piwo. +1 i dla wyjaśnienia, w php7 masz bardziej restrykcyjne ograniczenia dla typów, więc pusty łańcuch nie może mieć do niego czegoś dołączonego, traktując go jak tablicę. Jak wspomniano @fuxia, []działa tutaj również dobrze i jest bardziej Pythonish.
Ligemer