2026年8月11日

2026年8月11日

WordPressで「Cannot modify header information」エラーを解決

はじめに

WordPressサイトを運用していると、さまざまなエラーメッセージに直面することがあります。「Cannot modify header information - headers already sent by...」というエラーはその中でも頻繁に遭遇するもので、特にフォーム送信の際に発生しやすいです。この記事では、このエラーを解決するための手順と注意点について解説します。

症状・背景

  • フォームの送信後に「Cannot modify header information」エラーが表示される
  • PHPスクリプト中に非同期通信(AJAX)でヘッダー情報を変更しようとする部分がある
  • カスタムプラグインやテーマ内で、ヘッダーデータを送信する前に出力データがある場合
  • WordPressのアップデート後にエラーが発生する

手順・設定方法

ステップ1: ファイル内の非意図的な空白や改行を削除

# WordPressのテーマファイル、プラグインファイル内にある不要な空白文字や改行文字を削除します。
nano /path/to/wp-content/themes/your-theme/functions.php

# また、該当するPHPスクリプト内でヘッダー情報を設定しようとするコードが前に出力データがあるか確認します。

ステップ2: PHPスクリプトの順序を調整

# 関数や処理の中で、header関数を使用してHTTPヘッダーを送信する部分と、それ以外の出力を行う部分を明確に分離します。
nano /path/to/wp-content/plugins/your-plugin/plugin.php

# 出力データが生成される前に、header関数を使用して必要なヘッダー情報を設定します。

ステップ3: カスタムコードやプラグインの調整

# 特定のプラグインやテーマ内で、ヘッダー情報と出力を適切に管理するためのフィルターやアクションを使用します。
nano /path/to/wp-content/plugins/your-plugin/functions.php

# 出力データが生成される前にheader関数を呼び出すように調整します。

ステップ4: サーバー設定を確認・修正

# PHPのバッファリング設定が適切に行われているか確認し、必要であれば変更を行います。
nano /path/to/php.ini

# output_buffering = On と設定します。

注意事項

  • 不要な空白文字や改行文字を削除する際は必ずバックアップを作成してください
  • ファイルの編集は経験のある開発者に行わせることが推奨されます
  • セキュリティ上の理由から、不要な出力が行われていないことを確認します
  • パフォーマンスを向上させるために、ファイルサイズを小さく保ちます

まとめ

1. 非意図的な空白や改行の削除: WordPressテーマやプラグイン内のファイル内で不要な改行や空白文字を削除することで、出力データとヘッダー情報が適切に同期されます。

2. PHPスクリプトの順序調整: 出力データ生成前の部分にheader関数を使用し、その後で出力を実施します。これにより、「Cannot modify header information」エラーを防ぐことができます。

3. カスタムコードやプラグインの適切な管理: 特定のプラグインやテーマ内でヘッダー情報と出力データの同期を確保するため、フィルターやアクションを使用します。

4. サーバー設定の確認: PHPのバッファリング設定が適切であることを確認し、必要に応じて変更を行います。これにより、エラー発生時にすぐに修正することができます。

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ