本家のお世話-#44。(Illegal string offset ‘total_users’)

投稿アップデート情報  追記(6/22)  追記2(6/28)  追記3(6/28)  追記4(7/2)

 この間から,気になっていたPHP Warningがあった。
   PHP Warning: Illegal string offset ‘total_users’ in ~¥update.php on line 67
というやつで,一番初めは3月5日,2度目は4月11日で,あとはチョクチョク起こっている。日付から考えてPHPのバージョン関係だろうなあと思っていたが,前回ググったときは,何も探し出せなかった。今回,
Illegal string offset ‘total_users’というのを発見した。読んでみるとどうやらこれ関係のようである。

 で,これに余計なコメントを付け加えた後で,記事をじっくり読んだら,こんなのがあった。Inconsistent Variable Usage。おまけに,20966.diffがあって,workaroundが書いてある(汗)。余計なコメントは間違ったことを書いたわけではないが,書かなきゃよかった。時間も経過しているので,削除もできない。せめて,20966.diffを当てた結果チェックしてから書けばよかったなあ。この頃こんなんばっか。

 で,このPHP Warningだけど,上記の2つのスレッドを読んでみると次のようなことらしい。
 WordPressがユーザ数を調べるのに,マルチサイトとシングルサイトで違う関数を使っていることが混乱のもと。PHP5.4未満では問題が顕在化していなかったが,PHP5.4からemptyの仕様が変わったせいでWarningが出るようになった。empty関数の挙動変更の「5.4.0 文字列のオフセットに非数値を指定した場合は TRUE を返すようになりました。」というところに起因しているようだ。emptyの「例2 文字列のオフセットに対する empty()」を参照。

 放っておいても大した影響はなさそうだと安心したが,一応workaroundはやってみた。この次のUpdateのときにPHP Warningを確認してみよう。

追記(6/22):
 昨日,プラグインをひとつアップデートしたが,PHP Warning: Illegal string offset ‘total_users’ in ~¥update.php on line 67 は出なかった。workaroundは役に立っているようだ。

追記2(6/28):
 6月27日,Illegal string offset ‘total_users’Eric Mannさんから,次バージョンでこの件は修正されるという連絡があった。同日,WordPressについてver.3.4.1へのマイナーバージョンアップがあったが,これにおいては,update.phpは何も変更されていない。次バージョンというのは,ver.3.4.xであるとしてもメジャーアップデートの場合,あるいは,ver.3.5を指していると思われる。

追記3(6/28):
 Illegal string offset ‘total_users’でのcogmiosさんの報告によれば,Illegal string offsetは出なくなった模様。update.phpへの対症療法ではなく,coreでの解決のようだ。うちの場合,例の言語の関係でWordPress本体の自動アップデートが出来ないので,今のところ未確認。

追記4(7/2):
 今日,利用しているプラグインのうちの一つでアップデートがあったので,update.phpを使った。確かに,Illegal string offsetはでなくなった。Good Job!! — >> WordPress3.4.1。