Come posso risolvere l'errore fatale di RevSlider nella dashboard dopo l'aggiornamento a PHP 7?

15 mar 2017, 19:45:52
Visualizzazioni: 69.7K
Voti: 55

Posso accedere alla parte pubblica del sito. Ma la dashboard appare completamente bianca.

Il log mostra un errore che punta al plugin 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 il tracciato completo:

#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
2
Commenti

RevSlider, per quanto ne so, è un plugin specifico per Wordpress. Ho provato https://revslider.stackexchange.com/, ma mi dà un errore 404.

Chapman Atwell Chapman Atwell
12 mag 2018 02:18:47

Questo potrebbe non essere appropriato qui, ma è stato molto utile per me poiché questo errore rendeva completamente inaccessibile l'area di amministrazione dopo un aggiornamento di PHP, e risolverlo non è stato questione di debug ma solo di applicare la soluzione temporanea dalla risposta accettata.

Antti Haapala Antti Haapala
21 dic 2018 17:09:09
Tutte le risposte alla domanda 1
9
104

Ho risolto l'errore applicando una hotfix al plugin RevSlider sul mio server come documentato qui.

Nel file revslider/includes/framework/base-admin.class.php, ho modificato la seguente riga (riga 21 nella mia versione) da:

private static $arrMetaBoxes = '';         //box di opzioni che verranno aggiunti al post

a:

private static $arrMetaBoxes = array();    //box di opzioni che verranno aggiunti al post
15 mar 2017 19:45:52
Commenti

Puoi usare [] invece di array().

fuxia fuxia
15 mar 2017 19:49:45

Ha funzionato per me nel 2018!

eyal_katz eyal_katz
20 set 2018 01:57:38

Ottimo lavoro! Ho appena aggiornato a php 7.2 sul mio server e questo è stato utilissimo!

Spencer Bigum Spencer Bigum
23 dic 2018 01:44:07

Ciao, grazie per questa risposta! Nel mio caso, stavo usando il template WordPress churchHope e ricevevo un errore su /churchope/lib/revslider/inc_php/framework/base_admin.class.php:72 - ho risolto cambiando private static $arrMetaBoxes = ""; in private static $arrMetaBoxes = array();

Paul Preibisch Paul Preibisch
11 apr 2019 21:42:32

Ti devo una birra. +1 e per la spiegazione, in php7 ci sono restrizioni più severe sui tipi, quindi una stringa vuota non può avere qualcosa aggiunto mentre viene trattata come un array. Come ha detto @fuxia [] funziona bene anche qui ed è più in stile Python.

akahunahi akahunahi
23 mag 2019 08:46:25

nel mio caso revslider si trovava in: my_url/wp-content/plugins/revslider/inc_php/framework

Alessandro Mattiuzzi Alessandro Mattiuzzi
6 ago 2019 16:57:17

Nov 2019 funziona!!!

Daniel M Sánchez Daniel M Sánchez
14 nov 2019 22:23:17

Abbiamo incontrato questo errore oggi durante la migrazione a PHP 7.3 e questa soluzione temporanea ha funzionato perfettamente. Come ha menzionato @AlessandroMattiuzzi, il percorso sembra essere cambiato nelle versioni recenti del plugin.

bwright bwright
24 mar 2020 12:06:14

2021 su PHP 7.4 questa patch funziona ancora! Grazie!

xjlin0 xjlin0
17 gen 2021 02:00:53
Mostra i restanti 4 commenti