Lognote

ネット集客に強い整体院サイトを制作

cannot-modify-header-information-thumbnail

WordPressで”Cannot modify header information”の警告が出たときの解決方法

公開日:2017-04-09
最終更新日:

WordPressテーマの制作中、管理画面のJetpackメニューの部分に

cannot-modify-header-information-01

Warning:Cannot modify header information

このような警告が出るようになりました。

Warningは警告なので重大な不具合が出るわけではありません。無視しても問題はなさそうですが、ずっと出た状態なのですごく気になります。

警告文を続けて読むと、headers already sent by ( output started at ~)となっています。

下記サイトによると、この警告はheader関数よりも前に余計な処理が割り込んでしまうことによって起こるものだそうです。

ということは、それを見つけて修正すれば「Warning:Cannot modify header information」は直りそうです。

「Warning:Cannot modify header information」の解決方法

原因のある箇所はrest-api.phpの513行目と書いています。

確認してみると下記のようなコードでした。

header( sprintf( 'X-WP-DeprecatedParam: %s', $string ) );

PHPマニュアルによると空白もダメということが書いてあり、このコードの上にも1行空白がありました。

覚えておいて頂きたいのは、header() 関数は、 通常の HTML タグまたは PHP からの出力にかかわらず、すべての実際の 出力の前にコールする必要があることです。 頻出するエラーとして、include または require 関数、他のファイルをアクセスする関数に 空白または空行があり、header() の前に出力が 行われてしまうというものがあります。同じ問題は、単一の PHP/HTML ファイルを使用している場合でも存在します。

PHP: header – Manual

ということで、とりあえず空白を以下のように詰めてみましたが警告は消えませんでした。

function rest_handle_deprecated_argument( $function, $message, $version ) {
	if ( ! empty( $message ) ) {
		/* translators: 1: function name, 2: WordPress version number, 3: error message */
		$string = sprintf( __( '%1$s (since %2$s; %3$s)' ), $function, $version, $message );
	} else {
		/* translators: 1: function name, 2: WordPress version number */
		$string = sprintf( __( '%1$s (since %2$s; no alternative available)' ), $function, $version );
	}
	header( sprintf( 'X-WP-DeprecatedParam: %s', $string ) );
}

そもそもこのファイルはいじったことがないし、STINGER8では問題もなくJetpackが使えているので他を疑うことにしました。

WordPressは全然違う箇所をエラー報告したりするのでハマる原因にもなります。本当に厄介です。

Google先生に頼って調べていると、また一つ解決方法が見つかりました。

「php.ini」の「output_buffering」の設定を変更する

php.iniのoutput_bufferingという項目をOnに変更すると直るらしい。

php.iniとは

php.iniはPHPを動かすときに読み込まれるファイルで、CGI版やサーバーモジュール版があります。

設定ファイル (php.ini) は PHP の起動時に読み込まれます。 PHP のサーバーモジュール版では、Web サーバーの起動時に 一度だけ読み込まれます。CGI 版と CLI 版では、スクリプトが呼び出される度に読み込まれます。

PHP: 設定ファイル – Manual

バッファという言葉はストリーミングの動画を見るときによく目にします。ある程度ダウンロードしてからその分の動画が見られるようになるアレですね。

つまりこの、output_bufferingをOnにすると情報をまとめてから発信するということになります。逆にデフォルトのOffだと順番にその都度送ることになるので、空白や割り込み処理を無視しなくなるので警告が出るということですね。

output_bufferingの変更方法

結果としてoutput_bufferingをOnにしたら警告が出なくなりました。

cannot-modify-header-information-02

レンタルサーバーのphp.iniという項目があるので、そこで変更します。ここではエックスサーバーを例に説明します。

まず、インフォパネルのphp.ini設定をクリックします。

cannot-modify-header-information-03

編集したいドメインを選びます。

cannot-modify-header-information-04

php.ini直接編集でoutput_bufferingの値を変更します。

cannot-modify-header-information-05

私の場合は”4096″となっていましたが、これを”On”と変えて保存します。

output_buffering = On

これで警告は消えるはずです。

以上、「WordPressで”Cannot modify header information”の警告が出たときの解決方法」という記事をお届けしました。

-WordPress

この記事のタイトルとURLをコピーする

オススメ商品はこちら!

WordPressで”Cannot modify header information”の警告が出たときの解決方法
この記事はいかがでしたでしょうか。
是非Lognoteの最新ニュース情報を、
いいねしてチェックしてください!

関連記事

custom-field-affiliate-banner-thumbnail

カスタムフィールドで記事毎にアフィリエイト広告を貼り替える方法

Amazonアソシエイトやアフィリエイト広告は記事にマッチしなければクリック率は上がりません。この記事...

child-theme-copy-thumbnail

WordPressの親テーマのファイルを子テーマにコピーする方法

サーバー上のファイルにアクセスするFTPソフト「FFFTP」の設定方法と使い方を解説します。WordPressはサ...

stinger6-logo-use-google-web-fonts-thumbnail

WordPressの英字フォントをGoogle Web Fontsに変更してかっこよくカスタマイズする方法

STINGER8のタイトルロゴをGoogle Web Fontsを使ってカスタマイズする方法のご紹介します。

share-count-display-thumbnail

WordPressの記事トップにSNSのシェア数を表示する

ブログをやるうえで、記事をバズらせるというのは一つの夢でもあります。 こちらのサイトによると、バズるブログの6 …

404-top-redirect-thumbnail

404エラーページへのアクセスを処理する最も簡単な方法

ブログをある程度長くやっていると、どうしても納得がいかなかったり、いろんな理由で記事を削除してしまったという経 …

 1件のトラックバック

コメントを入力

日本語が含まれない投稿は無視されます。(スパム対策)

トラックバックURL

管理人のヤマカワです
山形在住、整体院「癒眠」院長
3級ウェブデザイン技能士


Lognote
2017/9/12
ご報告いただきありがとうございます! それは知りませんでした! メーカーの違いとかもあるのでしょう...
通りすがり
2017/9/12
比較的新しいカメラではサムネイル見れないらしいですよ。 うちもコーデック入れましたが2016年発売カ...
Lognote
2017/9/05
>> 堀田様 お役に立てて何よりです! 他に良い予約プラグインが出てくれればいいんですけ...
堀田
2017/9/05
ありがとうございました。 PHPを7 にしたらエラー吐き出して、有料版は PHP7 対応なんで有料...
Lognote
2017/8/16
>> たろ様 子テーマのコピー方法を省略しておりました。 解説記事を書きましたので、よろ...
たろ
2017/7/31
子テーマにコピーするの所がわかりにくい