Warning: Cannot modify header information – headers already sent by【ファイル名.php】と表示され様々なワードプレスの管理機能が使えない場合の原因と対処方法を解説いたします。

Warning: Cannot modify header informationが表示される理由

headers already sent by Warningは、ユーザーのサイトのアクセスに対して、すでにサーバーが何らかの応答してしまっているので、別のファイルから再度応答をしようとしているが実行できなかった という警告になります。

Warning: Cannot modify header information - headers already sent by (output started at /home/public_html/ファイル名1.php:#) in /home/public_html/wp-includes/ファイル名2.php on line 33

上記のようなワーニングが表示されている場合、ファイル名1.php がすでに応答しているので、ファイル名2.phpの33行目で2度目に応答しようとしているがそれを実行できなかったという事になります。

Warning: Cannot modify header informationがでると管理画面の機能が一部使用できなくなる理由

Warning: Cannot modify header information は、ワードプレスの管理画面の機能を一部阻害する場合があります。
例えば、投稿が更新できなくなったり、プラグインが更新できなくなったり、設定が保存できなくなったりすることがあります。

この理由は、ワードプレスがサイトのデータを処理する際に、すでに不正な文字列がワードプレスの管理者に対して発信されてしまっている為に、その後の処理を正規のデータで継続できなくなる場合があるからでございます。

Warning: Cannot modify header informationの原因と対処方法

この警告の原因は多岐にわたりますが、次のような原因となっている事例が多いです。

・テーマのfunctions.phpにプログラムミス(不要な空白やエラー)があり、それを再先で出力してしまっている

・プラグインのアップデートや、PHPのアップデートにより、サイトのPHPプログラムのどこかに再先でエラーを出力する何らかの不具合が発生している

・htaccessの設定不全が再先でエラーを出力している

Cannot modify header information警告の原因は多岐にわたりますので、ワーニングの内容をよく見てそのファイルを直接プログラミングで修正していくのが根本的な解決方法となりますが、ワードプレスのワーニングの出力自体をなくすことで再先の出力が抑制されてワードプレスの管理機能の使用が当面できるようになる場合もあります。

※wp-config.phpに下記のプログラムをサーバー情報の設定以下に記載します

//エラー出力をすべてしないようにする
define('WP_DEBUG', false);
define('WP_DEBUG_LOG', false);
define('WP_DEBUG_DISPLAY',false);
@ini_set('display_errors',0);
@error_reporting(0);

ただこの方法は警告を消すという対処方法となりますので、将来的により大きなエラーを引き起こしてしまう可能性もあります。
根本的解決には、PHPやワードプレスの専門技術者にご相談いただくことをお勧めいたします。

WordPress ワードプレスのCannot modify header information警告の原因調査と修正のご依頼・ご相談はWPドクターまでお気軽にお送りください