Bagaimana saya bisa memperbaiki kesalahan RevSlider fatal di dasbor setelah meningkatkan ke PHP 7? [Tutup]

36

Saya dapat mengakses sisi umum situs. Tapi dasbornya kosong.

Log menunjukkan kesalahan yang menunjuk ke 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

Inilah jejak lengkapnya:

#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
sumber
1
RevSlider, AFAICT, adalah plugin khusus untuk Wordpress. Saya memang mencoba revslider.stackexchange.com , tetapi 404s bagi saya.
Chapman Atwell
3
Ini mungkin tidak sesuai di sini, tetapi paling bermanfaat bagi saya karena kesalahan ini membuat mengakses admin sepenuhnya tidak dapat dijangkau setelah peningkatan PHP, dan memperbaikinya bukan masalah men-debug apa yang terjadi tetapi hanya menerapkan perbaikan terbaru dari jawaban yang diterima.
Antti Haapala

Jawaban:

68

Saya dapat memperbaiki kesalahan dengan memperbaiki perbaikan plugin RevSlider di server saya seperti yang didokumentasikan di sini .

Pada revslider/includes/framework/base-admin.class.php, saya mengubah baris berikut (l. 21 versi saya) dari:

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

untuk:

private static $arrMetaBoxes = array();    //option boxes that will be added to post
Chapman Atwell
sumber
8
Anda bisa menggunakan []bukan array().
fuxia
Bekerja untuk saya di 2018!
eyal_katz
2
Kerja bagus! Baru saja ditingkatkan ke php 7.2 di server saya dan ini berguna!
Spencer Bigum
Hai terima kasih atas jawaban ini! Dalam kasus saya, saya menggunakan template wordpress churchHope, dan mendapatkan kesalahan pada /churchope/lib/revslider/inc_php/framework/base_admin.class.php:72 - perbaiki ini dengan mengubah private static $ arrMetaBoxes = ""; ke privat $ arrMetaBoxes = array ();
Paul Preibisch
Aku berhutang bir padamu. +1 dan untuk penjelasannya, di php7 Anda memiliki batasan yang lebih ketat pada tipe sehingga string kosong tidak dapat memiliki sesuatu ditambahkan padanya sambil memperlakukannya seperti sebuah array. Seperti @fuxia disebutkan []juga bekerja di sini dengan baik dan lebih Pythonish.
Ligemer