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

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

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.