¿Cómo puedo solucionar el error fatal de RevSlider en el tablero después de actualizar a PHP 7? [cerrado]

36

Puedo acceder al lado público del sitio. Pero el tablero aparece en blanco.

El registro muestra un error que apunta al complemento 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

Aquí está el rastro 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
fuente
1
RevSlider, AFAICT, es un complemento específico para Wordpress. Yo probé revslider.stackexchange.com , pero 404s para mí.
Chapman Atwell
3
Esto podría no ser apropiado aquí, pero fue de gran utilidad para mí, ya que este error hizo que el acceso al administrador fuera completamente inalcanzable después de una actualización de PHP, y solucionarlo no fue una cuestión de depurar lo que sucedió, sino simplemente aplicar la revisión de la respuesta aceptada.
Antti Haapala

Respuestas:

68

Pude corregir el error reparando el complemento RevSlider en mi servidor como se documenta aquí .

En revslider/includes/framework/base-admin.class.php, cambié la siguiente línea (l. 21 de mi versión) de:

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

a:

private static $arrMetaBoxes = array();    //option boxes that will be added to post
Chapman Atwell
fuente
8
Puedes usar en []lugar de array().
fuxia
¡Trabajó para mí en 2018!
eyal_katz
2
¡Gran trabajo! ¡Acabo de actualizar a php 7.2 en mi servidor y esto fue útil!
Spencer Bigum
Hola gracias por esta respuesta! En mi caso, estaba usando la plantilla de wordpress de churchHope, y recibía un error en /churchope/lib/revslider/inc_php/framework/base_admin.class.php:72; lo solucioné cambiando la estática privada $ arrMetaBoxes = ""; a privado static $ arrMetaBoxes = array ();
Paul Preibisch
Te debo una cerveza. +1 y para la explicación, en php7 tiene restricciones más estrictas sobre los tipos, por lo que una cadena vacía no puede tener algo agregado mientras se trata como una matriz. Como mencionó @fuxia []también funciona bien aquí y es más Pythonish.
Ligemer