変更後のコード

普段使っているエックスサーバーで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以降が必要なアプリを入れることになり、バージョンアップを行いました。

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

一緒に人生を楽しむ、メールマガジンはじめました

こんにちは、ミヤケンです。
あなたのライフデザインが一歩ずつ着実に進んでいくような、そんなメールマガジン発行しています。

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

上司を見ていても自分の未来に希望が持てないな、今いる環境を飛び出して、何か自分でやってみたい、と感じている人は少なくないのではないでしょうか。
フリーランス、または、独立起業を目指す方し、世界と仕事と人生を分けるのではなく統合させて自分の人生を創って生きていきたい人。
そんな人を応援していきたいと思っています。

そのための環境を創ることを

  • 自分自身の未来を信じられるようにすること
  • Web周り(ブログやHP、SNSの活用)を整えること
  • 僕が良いと思ったものを紹介すること
    (僕自身が世界で暮らす中で実際に体験したり使ってみたりしている"本当に良い"と思ったもの)
  • 時に話を聞いたりアドバイスをしたり

でサポートしていたいと思っています。

なぜなら、僕自身が25歳で大手企業を退職してベンチャーや起業を経験し、ベトナムへの移住するなど、これまでの約10年間、境界線を超えた生き方を実践することで自分自身の価値観とか生き方が変わってきたことを感じているからです。
今はとても幸せで、毎日楽しく生活しているので、そんな仲間が増えたら楽しいなと思っているからです。

このメールマガジンは、人生を楽しむ仲間が集まる場所にしていきたいと思っています。
人生は楽しい、そう胸を張って言える仲間を作り、その輪を作っていきたいのです。

もちろん、そのために必要だと思うことや、自分が通ってきた道の話をどんどんしていきます。
例えば、こんな話です。

  • 大事なものを諦めない生き方
  • 自分の将来を我慢しないための投資術
  • 会いたい人に会いに行けるマイル活用術
  • ベトナムで起業して経験した諸々

自分が大事にしたいことを大事にして、胸を張って生きる。
そういう人生を選び取っていきたい・・・。

少しでもそんな気持ちがあるのであれば是非読んでみてください!

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

 

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

この記事が気に入ったら
いいね!をお願いします!

最新情報をお届けします

Twitterでもつぶやいています

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