先日、WordPressのカスタマイズを実施している際に、急にエラーメッセージが表示されるようになってしまい、慌てたことがありました。
実はいつもであれば、秀丸エディタを使ってカスタマイズをしていたのですが、その日は別の環境で作業をしており、Windows標準のノートパットでファイルを編集していました。
この日、カスタマイズをしていたのは、functions.phpとwp-config.phpの二つです。
エラーメッセージはログアウトをしようとすると、下記のようなメッセージがいくつか出ます。
Warning: Cannot modify header information – headers already sent by (output started at /home/sites/中略/wordpress/wp-content/themes/中略/functions.php:12) in /home/sites/中略/wordpress/wp-login.php on line 269
このメッセージでネット検索して見ると、たくさんの事例がヒットしました。よくある事象のようです。
その中に、絶対にWindowsのノートパットを使ってはいけないということも書かれていました。
なぜ、notepadではいけないのかというと、文字コードをUTF-8(BOM有り)でしか保存できないからです。本来はBOM無しで保存しなければいけません。BOM有りで保存すると、ファイルの最初に制御コードが一緒に保存されて、それがWordPressの動作に悪さをするそうです。
特にfunctions.phpについては、デリケートなファイルで、余計な改行や余計なスペースが入っているだけでも動作がおかしくなる場合があるようです。他サイトから単純にコピぺしただけでも改行や余計なスペースが混入する可能性があるので、一旦、推奨されるテキストエディタに貼り付けて、余計な改行やスペースが無いことを確認してからコードに貼り付けるくらいの慎重さが求められるとのことでした。
functions.phpの編集をすることができるエディターの条件は下記の二点のAND条件です。
・文字コードを指定できること
・UTF-8(BOM なし、UTF-8N)で保存できること
上記の条件を満たさずfunctions.phpの編集に使ってはいけないエディターは下記の通りです。
・Windows のメモ帳(Notepad)
・リッチテキストエディタ(Word等)
逆にfunctions.phpの編集に適したエディターは下記の通りです。
・ EmEditor(Windows)(シェアウェア版・フリー版)
・ サクラエディタ(Windows)(フリーウェア)
・ TeraPad(Windows)(フリーウェア)
・ 秀丸エディタ(Windows)(シェアウェア)
私はサクラエディタを緊急的にダウンロードして使わせてもらいました。こちらのサイトで公開されています。
☆サクラエディタ
必ず、ファイルを保存するときに上書き保存では無く、ファイル名を指定して保存を選択して、ファイル形式として、「UTF-8N」を選択してください。私はここでもはまってしまいました。
わかってしまえば簡単なことなのですが、はまってしまうと更におかしくしてしまって手に負えない状態になることがあります。落ち着いて対応が必要だと改めて思った次第です。
コメント