Warning: Cannot modify header information…のエラーを解決してみた。
WordPress内のphpファイルをゴニョゴニョといじっていたら、「Warning: Cannot modify header information – headers already sent by …」というエラーが出たのですけれども、どうにかこうにか解決できたーというメモ書きです。
症状
WordPressのfunction.phpにいろいろ書き込んでいたところ、上記のエラーが出ました。プログラムがまともに書けないワタクシとしてはまったく原因がわからないので、先人の知恵を拝借することにしました。
解決策
いろいろなブログを拝見して、いくつか解決策があったので片っ端から試してみました。
「余計な改行が入ってるからNG」
function.phpの中にある余計な改行が原因、または、「header(“Location:~”);」の前に改行が入ってるからNGという記事を拝見したので、改行を片っ端から消してみました。が、今回の場合は解決せず・・・
「『header(“Location:~”);』に『echo』を使ってるとNG」
「header(“Location:~”);」の前にechoがあるとダメとのこと。なるほど!でも、今回は該当箇所がなかったです・・・
「『php.ini』の設定を変えるといい」
「php.ini」の設定で「output_buffering = Off」となっていたら、「output_buffering = On」にする。
今回の場合は、この解決策がビンゴでした!
といいつつ、php.iniがなにかもよくわかっていないので、とりあえず、使っているサーバー【heteml】のコントロールパネルを見てみると、右側のナビゲーションに「php.ini設定」とありました。
これをクリックすると、ずらずらとあれこれ設定項目が出てきました。今回はphpのバージョンが5.3だったのでそのタブを開いて、お目当ての「output_buffering」の項目を「On」に。
この設定変更で解決しました!よかった!
今回参考にさせていただいた記事
下記の記事を参考にさせていただいて、なんとか解決できました。ありがとうございました!