Wie kann ich einen schwerwiegenden RevSlider-Fehler im Dashboard nach dem Upgrade auf PHP 7 beheben? [geschlossen]

36

Ich kann auf die öffentliche Seite der Site zugreifen. Aber das Armaturenbrett ist leer.

Das Protokoll zeigt einen Fehler, der auf das RevSlider-Plugin verweist:

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

Hier ist die vollständige Spur:

#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
quelle
1
RevSlider, AFAICT, ist ein Plugin speziell für Wordpress. Ich habe versucht, revslider.stackexchange.com , aber es 404s für mich.
Chapman Atwell
3
Dies mag hier nicht angebracht sein, war aber für mich am nützlichsten, da dieser Fehler den Zugriff auf den Administrator nach einem PHP-Upgrade vollständig unerreichbar machte und es nicht darum ging, Fehler zu beheben, sondern nur den Hotfix aus der akzeptierten Antwort anzuwenden.
Antti Haapala

Antworten:

67

Ich konnte den Fehler beheben, indem ich das hier dokumentierte RevSlider-Plugin auf meinem Server hotfixte .

In revslider/includes/framework/base-admin.class.phpänderte ich die folgende Zeile (l. 21 meiner Version) von:

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

zu:

private static $arrMetaBoxes = array();    //option boxes that will be added to post
Chapman Atwell
quelle
8
Sie können []anstelle von verwenden array().
fuxia
Hat 2018 für mich gearbeitet!
eyal_katz
2
Gut gemacht! Ich habe gerade ein Upgrade auf PHP 7.2 auf meinem Server durchgeführt und das hat sich als nützlich erwiesen!
Spencer Bigum
Hallo danke für diese Antwort! In meinem Fall habe ich die WordPress-Vorlage churchHope verwendet und einen Fehler in /churchope/lib/revslider/inc_php/framework/base_admin.class.php:72 erhalten. Dieser Fehler wurde durch Ändern der privaten statischen $ arrMetaBoxes = "" behoben. an private static $ arrMetaBoxes = array ();
Paul Preibisch
Ich schulde dir ein Bier. +1 und zur Erklärung, in php7 gibt es strengere Einschränkungen für Typen, so dass an eine leere Zeichenkette nichts angehängt werden kann, während sie wie ein Array behandelt wird. Wie @fuxia schon erwähnte []funktioniert das auch hier gut und ist eher pythonisch.
Ligemer