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

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

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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.