PHP7.1バージョンアップでワードプラスのプラグイン(Revolution Slider、qtranslate-x)のエラーがでたので対応した

普段使っているエックスサーバーでPHPを5.6から7.1にアップグレードしたところ、運営しているいくつかのサイトにエラーが出てしまいました。

古いプラグインのコードに問題があったのですが、多く使われているプラグインだと思うので解決策をメモしておきます。

Revolution Sliderで発生したエラーと解決策

有料テーマの中に一緒に入っていたRevolution Sliderバージョン4.6がエラーを出していました。

最新版は5.3なのですが、テーマと一緒に頒布されているプラグインは新しいものに更新ができないため、直すしかないようです。

PHP Fatal error: Uncaught Error: [] operator not supported for strings というエラーとその理由

PHPのバージョン更新後、ワードプレスの管理画面に入ろうとすると、このエラーが出てしまい管理画面にすらアクセスができなくなっていました。

PHP7.0までは以下のように空文字で配列を初期化できたのですが、

$myarray = "";
$myarray [] = $myobject; // PHP7.1ではここでエラー発生

PHP7.1からは下記のように配列を初期化しないといけないようです。

$myarray = array();
$myarray [] = $myobject;

Revolution Sliderのファイル変更

対象ファイル:/wp-content/plugins/revslider/inc_php/framework/base_admin.class.php 23行目

表示されているエラーから場所はすぐに分かりました。

変更前のコード

ここにある$arrMetaBoxesという配列画から文字で初期化されているため、代入時にエラーとなっていました。

変更後のコード

なので、array()で初期化をするようになり、解決。

他にもエラーが出てくるかなと思いましたが、ここ1箇所の修正で問題なく動いています。

qtranslate-xで発生したエラーと解決策

qtranslate-xは多言語化サイトを作るときにとても便利なプラグインで、2年前に開発が止まっていますが今も使い続けています。

今回PHP7.1にアップデートした際にエラーが出たのですが、まだまだ使い続けられそうです。

Warning: Parameter 2 to qtranxf_postsFilter() expected to be a reference, value givenというエラーとその理由

qtranxf_postsFilter()というqtranslate-xの関数には参照渡しを行わなければいけないところに値が渡されたとエラーがでています。

この関数は/wp-includesclass-wp-hook.phpのcall_user_func_array()から呼び出されるのですが、ここでは値で渡しています。

qtranslate-xのファイル変更

ワードプレスのフォーラムに解決策がありました。こうやって解決策が見つかると、多くの方が使っているプラグインで本当に良かったと思います。

/wp-content/plugins/qtranslate-x/qtranslate_frontend.phpで、下記の2箇所を

//523行目
function qtranxf_postsFilter($posts,&$query) {//WP_Query

//597行目
function qtranxf_excludeUntranslatedPosts($where,&$query) {//WP_Query

下記のように変更します

//523行目
function qtranxf_postsFilter($posts,$query) {//WP_Query

//597行目
function qtranxf_excludeUntranslatedPosts($where,$query) {//WP_Query

関数自体を参照渡しではなく値渡しにすることで正しく動くようです。

参考:Topic: Problem with PHP 7.1 | WordPress.org

まとめ

PHPのバージョンアップで性能が上がったり、信頼性が増えるのですが、やはりこういうエラーはいくつか出るものですね。

今回も、特にバージョンアップの必要性がなかったのでずっとPHP5.6で運用していたのですが、急遽PHP7.0以降が必要なアプリを入れることになり、バージョンアップを行いました。

ワードプレスは便利なのですが、無料のオープンソースなのでこのあたりは専門業者にお願いするか、自分で解決しないといけないですね。

もっと知りたい人に向けてメールマガジンやっています

記事をお読み頂きありがとうございました。
もっと詳しく知りたい!そう思ってくれたのであれば、是非ともメールマガジンに登録ください。無料です。

何度も事業を起こしたり、無職になったり、裏切られて事業が消えたり、死にたくなったり、
そんな中で何があっても安心して挑戦を出来る基盤を作りたくて、資産運用を研究してきました。
香港にも何度も足を運び、FPにもなり、友人にアドバイスをして、その成果も出るようになってきました。
今では働かなくても生きていけるようになったので、本当にやりたい仕事だけに全力で挑戦できるようになりました。

事業を立ち上げるのはなかなか再現性がないのですが、資産運用はほとんどの人に同じ再現性があります。
つまり、これなら「皆が安心して挑戦出来る状態になれるのでは!?」と思っています。

2022年からは、それをどうにか伝えたい、そう思ってメールマガジンを再構築しています。
購読いただいた方からの質問も受け付けています。

少しでも「もっと明るい未来を計画したい」
そんな気持ちがあるのであれば是非読んでみてください。

\登録簡単!1分ですぐに登録完了します/

 

メールマガジンについてもう少し知りたい、という方はこちらも読んでみてください

あなたのライフデザインが一歩ずつ着実に進んでいくような、そんなメールマガジンにしたいと思っています。
その基盤となる未来の不安をなくして今を楽しめるようになる、そのためのお金の考え方を現在は発信しています。

自分が大事にしたいことを大事にして、胸を張って生きる。
そう生きるにはどうすればよいのかを考えながら、実践してブログなどで発信しています。
そして、そんな仲間を作りたい。

そんなメールマガジンにかける想いについてはこちらに詳しく書いています。

こんな記事もいかがでしょう