Come posso correggere l'errore irreversibile di RevSlider nella dashboard dopo l'aggiornamento a PHP 7? [chiuso]


36

Posso accedere al lato pubblico del sito. Ma la dashboard appare vuota.

Il registro mostra un errore che punta al plug-in 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

Ecco la traccia completa:

#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, è un plugin specifico per Wordpress. Ho provato revslider.stackexchange.com , ma 404s per me.
Chapman Atwell,

3
Questo potrebbe non essere appropriato qui, ma è stato molto utile per me poiché questo errore ha reso l'accesso all'amministratore completamente irraggiungibile dopo un aggiornamento di PHP, e risolverlo non era una questione di debug di ciò che è successo, ma solo l'applicazione dell'aggiornamento rapido dalla risposta accettata.
Antti Haapala,

Risposte:


68

Sono stato in grado di correggere l'errore aggiornando il plug-in RevSlider sul mio server come documentato qui .

In revslider/includes/framework/base-admin.class.php, ho cambiato la seguente riga (l. 21 della mia versione) da:

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

a:

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

8
Puoi usare []invece di array().
fuxia

Ha funzionato per me nel 2018!
eyal_katz,

2
Ottimo lavoro! Appena aggiornato a PHP 7.2 sul mio server e questo mi è tornato utile!
Spencer Bigum,

Ciao grazie per questa risposta! Nel mio caso, stavo usando il template wordpress churchHope e stavo ottenendo un errore su /churchope/lib/revslider/inc_php/framework/base_admin.class.php:72 - risolto modificando lo statico privato $ arrMetaBoxes = ""; a statico privato $ arrMetaBoxes = array ();
Paul Preibisch,

Ti devo una birra. +1 e per la spiegazione, in php7 hai restrizioni più strette sui tipi, quindi una stringa vuota non può avere qualcosa ad essa aggiunta mentre la tratta come un array. Come menzionato da @fuxia, []funziona bene anche qui ed è più pitonico.
Ligemer,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.