ワードプレスの自作プラグインを初めて有効化しようとしたら、
「○○文字分の予期しない出力が生成されました。」
と表示される・・・
せっかくプラグイン化が出来たと思ったのに・・・
ちょっとがっかりですよね。
しかし、ここでめげることはありません。
こんなときの対策を備忘録代わりに記録しておきますので
同じ症状の方はよろしかったらどうぞ。
”○○文字分の予期しない出力が生成されました”の対処法
対処方法としては、以下の二つ。
- PHPファイルをUTF-8(BOMなし)で保存しなおす。
- PHPコードの最後の?>を消す。
です。
まずはUTF-8(BOMなし)からみていきます。
UTF-8(BOMなし)って?
PHPのコードを記述する際は、
文字コードとして、UTF-8を使用する必要がある。
というのは知っていましたが・・・
更に!
(BOM無し)にする必要があるんですね。
この(BOM無し)とは
Byte Order Mark の略らしいのですが
要は、エディタに記述したものに
3バイトのバイナリーデータが勝手に付与される。
といったもの。
(「0xEF 0xBB 0xBF」というのが付くらしい・・・)
ということなので、
実際の対策としては、
プラグインのコードをUTF-8(BOMなし)で編集・保存しなおせばOK!
UTF-8(BOMなし)で編集しなおす手っ取り早い方法
PHPコードの編集に、Tera Pad を使うと簡単です。
(他にも編集用のエディタはいろいろあると思いますが。)
ウィンドウズについている”メモ帳”では出来ないらしい・・・
Tera Padの”表示”から”オプション”を選択します。
文字コードをクリックして以下を表示させましょう。
上記のように
文字コード・改行コードの部分を
UTF-8N LF
にすればOKです。
あとは、
プラグインにするコードのファイルを読み出して
再度保存し直します。
PHPコードの最後を消す
次はPHPコードの最後尾につけるべき
?>
を消します。
私的には、文字コード変換してから
?>が付いたままでどうなのか試していません。
なので必須事項かどうかは正直不明ですが・・・
ワードプレスの場合は、?>を書かない方が良いらしいので。
以上、自作プラグインを有効化した際に
○文字分の予期しない出力・・・・
への対策方法でした。