連載第203回
2026年4月11日
PHP7.4x から PHP8.20 へ切り替えてみる#3:不具合の原因は「Count per Day」

MAMP PROでPHP8.20に切り替えたら、WordPressが画面真っ白になってしまった前回からの続き。安定しているのならそのままでいいじゃないか…という放任主義で生きてきたので、おそらく古いバージョンのまま更新せずにいた各種プラグインが不具合を起しているのだろうと考えました。PHPをバージョン7.4.33に戻すと復帰したので、インストールされているプラグインを順に「無効化」して表示動作を確認。すぐに原因となったプラグインが特定出来ました。

原因は「Count per Day」バージョン 3.5.7

このプラグイン、だいぶ昔(WordPress3.x時代?)にインストールして、しばらく放置していたら、どこかのタイミングでポリシー違反したらしく、いつの間にか本家WordPressの公認からBANされ消えてしまったというブツです。消えて無くなってしまったので、当然今後のバージョンアップは無い。別にこのプラグイン使えなくなっても、そんなに重宝しているわけでもない。…というのも、このサイトを定期的に訪れる変わった人ってだいたい1日に5〜10人くらいで、その他はクローラーとかbotの類いしかアクセスしていないと思われるので、これを機会に外してしまっても全く問題ない。と思いつつ、このプラグインとPHP8.2で不具合起している人ってどれくらいいるんだろうか?と思いググってみたら、偶然にエラーの回避方法を載せている記事を見かけたので、ちょっと試してみることにしました。

本当に1行修正するだけで大丈夫なのか?→大丈夫だった

さて、参考記事によると、該当プラグインのフォルダ内にある「counter-core.php」をエディタで開いて、その中の1行だけ修正すれば良いらしい。その修正というのも、

【変更前】
$last = strtolower($val{strlen($val)-1});

【変更後】
$last = strtolower($val[strlen($val)-1]);

なんと「{ }」「[ ]」に置換するだけ。なんだそれは。上図のようにWordPressのダッシュボードの左メニューから「プラグイン>プラグインファイルエディター」を開いて、WordPressの中で修正作業が行えるらしい(こんな機能があるのを、WordPress使い始めて14年で初めて知った…)。
というわけでまずは手元のM4 Pro Mac miniの中にあるMAMP PRO管理下のバックアップ用ローカルサイト「flipflipflip.local」で試してみることにしました。僕の環境では、1520行目に問題の一文があり、正しく動作するという文言に置き換えてみます。上書き保存して、MAMP PROでPHP8.20に切り替えて再起動。Safariをリロードすると、何事もなかったように通常運転している模様。参考記事ではPHP8.1の環境下での説明でしたが、PHP8.20でも大丈夫でした。PHP8.30以降ではどうなのか、残念ながら自分の環境では確認出来ません。
ちなみに、修正したCount per Dayは、現在使用中の古いPHPバージョン7.4.33でも問題なく動作しました。

次回は、その他の常用しているプラグインの更新や使用停止などを検討していきます。