Xserverが、いつのまにやらPHP8に対応した。なので、とりあえず、WordPress+Elementorの環境をPHP8にしてみた
とりあえず、PHP8にしてみたところ、もっともビックリしたのはGTmetrixでの評価が「B」になった。
このサイトはWordPress+Elementor Pro+e-addons+WP Rocketを利用しているのだけれど、前のPHP7の環境では評価が「D」の状態で、「まあe-addonsとか入れてっから仕方がない」ぐらいに思っていたが、PHP8にすることで評価が「B」にアップした!
Elementor遅いな~と思いつつWP Rocketをインストールしてみて…まだ遅いなぁとあきらめていた身としてはPHP8にしてみて、ラッキーといったところ。
ただし、ちょっとした落とし穴がありました…。
見慣れぬエラーが発生!これはPHP8のせいかは不明…とりあえずコードを追加
ありていにいうとサムネイル画像を使っている場所で下記のようなエラーが発生したわけですね。PHP8にしたことによって。
Warning: A non-numeric value encountered in (ドキュメントルート)/wp-content/plugins/elementor/includes/libraries/bfi-thumb/bfi-thumb.php on line 748
これは何なのだ!と検索してみてもまあ、型が違うので計算するなよってことなワケ。でも検索しても公式見ても、PHP8でこのエラーがでるよという情報はみつからなんだ…。
エラーの場所がわかっているので、該当部分のコードを見ると4つの変数に問題があるよう。するってぇと4つの変数の値をインテジャーにキャストすればいいってことで、下記の4行を追加することでエラーはなくなった。
$new_w = (int)$new_w;
$orig_w = (int)$orig_w;
$new_h = (int)$new_h;
$orig_h = (int)$orig_h;
エラーの情報がないので…アップデートされるたびにコードを追加しないと…。
公式にも情報がないので、管理人サイトの特有なエラーなのか、それとも非常に稀な事例なのか…。
アップデートするたびにコードを追加する必要があるので、面倒といえば面倒なんだけど、まあ、サイトが動かなくなるわけではないので、まあいいか…。