WordPressのエラー「Notice: ob_end_flush(): Failed to send buffer of zlib output compression」が表示されたときの修正方法を解説します。
WordPressエラーの原因
このエラーは、PHPの圧縮設定(zlib)と、WordPressのバッファ処理(一時的なデータ蓄積)が干渉することで発生します。
該当のサイトでは、WordPress更新時にエラーが発生して、以下のメッセージが表示されました。
Notice: ob_end_flush(): Failed to send buffer of zlib output compression (1) in /home/public_html/●●●●●.co.jp/wp-includes/functions.php on line 5427
このエラーはPHPの仕組みと関連しています。通常、PHPはデータを小出しにブラウザに送りますが、zlibというPHPの圧縮機能を使うと、データをまとめて圧縮・送信することができます。
続いて、WordPressが ob_end_flush (溜まったデータをすべて送信)という指示を出した際に、実行済みのzlibと重なると「送るバッファがない」というエラーが表示されます。
サイトの表示や操作などに支障はありませんが、エラーが表示されると見た目が悪いので、修正することにします。
エラーの修正方法 functions.phpにコードを追加
エラーの修正方法ですが、テーマファイル「functions.php」か「.htaccess」にコードを追加することで解決できます。まずはfunctions.phpを修正してみましょう。
※ WordPressのエラー修正はテーマファイル変更を伴うため、思いがけないトラブルが発生するかもしれません。必ず事前のバックアップや、修正前ファイルの保存をお忘れなく。
functions.phpにアクセスする方法は、主に以下の3種があります。状況に応じて選択します。
- サーバーのファイルマネージャーを使う
- FTPソフトでサーバー内のファイルにアクセス
- WordPressのテーマファイルエディタを使う
ダッシュボードにアクセスできる場合は、外観 → テーマファイルエディタ → テーマファイルのfunctions.phpに進んでください。

このコードによって、WordPressが自動でバッファを閉じようとする動作を停止させることができます。
remove_action( 'shutdown', 'wp_ob_end_flush_all', 1 );functions.phpの一番最後に上記のコードを貼り付けます。

エラーの修正方法 .htaccessにコードを追加
functions.phpを変更してもエラーが出る場合は、.htaccessに以下のコードを追加してください。
php_flag zlib.output_compression Offサーバー側で zlib.output_compression が「On」になっている場合は、この方法で解決します。
.htaccessはWordPressからアクセスできないので、サーバーのファイルマネージャーを使うか、FTPソフトでサーバー内のファイルにアクセスしてください。

.htaccessをダウンロードして編集、もしくはファイルマネージャーで直接編集します。.htaccessファイルの一番上に、前述のコードを追記してください。

無事にWordPressの更新が完了しました。エラーメッセージも消えています。

※ WordPressのエラー修正はテーマファイル変更を伴うため、思いがけないトラブルが発生するかもしれません。必ず事前のバックアップや、修正前ファイルの保存をお忘れなく。


