ワードプレス本体 5.5.0から 5.5.1にアップデートしようとしたときに、ワーニングが出て処理が止まってしまいました・・・
phpのワーニング
Warning: fclose() expects parameter 1 to be resource, null given in /xxxx/wp-admin/includes/class-wp-filesystem-ftpext.php on line 159
というようなワーニングが出てきました。
ワーニングなので、無視をしたのですが、ワードプレス本体のアップデートが終わらない。
アップデートを諦めて、DBと、WEBコンテンツを、一度、バックアップから元に戻しました。
ソースファイルをチェック
そして、この「class-wp-filesystem-ftpext.php」の159行目を見てみました。
while ( ! feof( $temphandle ) ) { $contents .= fread( $temphandle, 8 * KB_IN_BYTES ); } fclose( $temphangle );★ unlink( $tempfile ); return $contents;
上記の★の「 fclose( $temphangle );」が、159行目です。
この、「$temphangle」という変数ですが、ソースには、見当たらない・・・
そして、ソースを眺めてみると、「$temphandle」ではないかと・・・
ソースファイルを変更してみる・・・
ということで、試しに、
while ( ! feof( $temphandle ) ) { $contents .= fread( $temphandle, 8 * KB_IN_BYTES ); } fclose( $temphandle );★ unlink( $tempfile ); return $contents;
と、★部分を「fclose( $temphandle );」にして、ワードプレス本体のアップデート!
そして、無事、ワーニングもでないで、終わりました。
「翻訳」のアップデートも、同じようにワーニングが出ていたのですが、
スムーズにアップデートされたようです・・・
FTPモードで、アップデートしているので、ワーニングがでない環境もあるかもしれません・・・・
#ソースの改変などは、ご自身で責任をもって行ってください・・・
ワーニング、まとめ
油断せず、アップデート時には、毎回、きちんとバックアップを!
と、改めて、思いました・・・