Como posso corrigir um erro fatal do RevSlider no painel após atualizar para o PHP 7? [fechadas]

36

Eu posso acessar o lado público do site. Mas o painel aparece em branco.

O log mostra um erro apontando para o 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

Aqui está o rastreamento 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
Chapman Atwell
fonte
1
RevSlider, AFAICT, é um plugin específico para o Wordpress. Eu tentei revslider.stackexchange.com , mas 404s para mim.
Chapman Atwell
3
Isso pode não ser apropriado aqui, mas foi mais útil para mim, pois esse erro tornava o acesso ao administrador completamente inacessível após uma atualização do PHP, e corrigi-lo não era uma questão de depurar o que aconteceu, mas apenas aplicar o hotfix da resposta aceita.
Antti Haapala

Respostas:

68

Consegui corrigir o erro corrigindo o plug-in RevSlider no meu servidor, conforme documentado aqui .

Em revslider/includes/framework/base-admin.class.php, alterei a seguinte linha (l. 21 da minha versão) de:

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

para:

private static $arrMetaBoxes = array();    //option boxes that will be added to post
Chapman Atwell
fonte
8
Você pode usar em []vez de array().
fuxia
Trabalhou para mim em 2018!
eyal_katz
2
Bom trabalho! Acabei de atualizar para php 7.2 no meu servidor e isso veio a calhar!
Spencer Bigum
Oi, obrigado por esta resposta! No meu caso, eu estava usando o modelo wordpress churchHope e estava recebendo um erro no /churchope/lib/revslider/inc_php/framework/base_admin.class.php:72 - corrigido isso alterando private static $ arrMetaBoxes = ""; para estática privada $ arrMetaBoxes = array ();
Paul Preibisch em 11/04
Eu lhe devo uma cerveja. +1 e para a explicação, no php7 você tem restrições mais rígidas sobre os tipos, portanto uma string vazia não pode ter algo anexado a ela enquanto a trata como uma matriz. Como o @fuxia mencionado []também funciona bem aqui e é mais Python.
Ligemer