WordPress初心者の方も、愛用者の方も、
楽しく学べるフォローサイト!

WP-Master.club ヘッダーロゴ

WordPressログイン画面で「エラー:予期しない出力によりCookiesが〜」が出た場合の対処法

WordPressで、テストサーバーやローカル環境ではうまく動いていたはずのプログラムが、本サーバーにアプした際に作動しなくなるといった事例が発生しました。

データベースも無事に引っ越し完了し、本サーバーへテーマのアップも終わった後、管理画面に再度入ろうとすると、なぜかうまくいかない・・・

その際、私が行った対処方法をここでお伝えします。同じ症状でお困りの方は一度試してみると解決するかも!?

 

症状

①「http://www.ドメイン名/wp-admin/」でログイン画面を出すとエラーが出る

ログイン画面に入る際、「http://www.ドメイン名/wp-admin/」で表示しようとすると、下記のエラーが出ます。

Warning: Cannot modify header information – headers already sent by (output started at /サーバー上のアドレス/wp-includes/pluggable.php on line 1167」

しかもこのエラーしか表示されず、後の画面は真っ白な状態です。

 

この場合、「/wp-admin/」を「/wp-login.php」に置き換えることで対処できます。

※下手に「pluggable.php」を弄らないようにしましょう。

 

②ログイン画面で「エラー: 予期しない出力によりCookiesがブロックされました~」と表示される。

次に、前述の「/wp-login.php」で、管理画面に再ログインしようとすると、下記の画面が表示されます。しかもユーザー名とパスワードを間違いなく入力してもログインできない・・・

ログイン画面 エラー Cookiesエラー

付随して、画面上部にこんなエラー表示までされました。

Warning: Cannot modify header information – headers already sent by (output started at /サーバー上のアドレス/wp-content/themes/テーマ名/functions.php:22) in /サーバー上のアドレス/wp-login.phpon line 390

Warning: Cannot modify header information – headers already sent by (output started at /サーバー上のアドレス/wp-content/themes/テーマ名/functions.php:22) in /サーバー上のアドレス/wp-login.phpon line 403

 

③wwwあり(なし)の正規化が無効になっている

初期設定で、私の場合「wwwあり」で設定しました。試しに「wwwなし」でURL入力すると、本来ならWordPressは自動的に正規化がなされて「wwwあり」にリダイレクトされるのですが、今回の症状ではエラー表示となり、うまく表示されません。

ちなみに、「wwwあり」のURLを入力した場合は、正常にサイトが表示されます。

 

対処

「functions.phpから余分な改行を排除する」

原因はこれでした。

症状②で、「Warning:〜テーマ名/functions.php:22〜」とあったので、functions.phpの22行目をチェックしてみました。

すると、21行目に改行が入っている。。。

functions.php 改行エラー

これなのかなあ、、、と、試しに改行を削除すると。。。

無事に解決しました!

 

症状①で、「http://www.ドメイン名/wp-admin/」のURLで、ログイン画面が表示されるようになりました。

症状②のログイン画面でのエラーも消えました。

症状③も、リダイレクトが効くようになりました。

 

 

 

まとめ

今回の例の場合、そもそも「<?php 〜 ?>」を複数回使ってしまっている点で、プログラム的にはあまりよろしくない気もしますが^^;

ローカルやテストサーバーでは改行ありでも正常に動いていたものが、別サーバーに移動した場合に正常に作動しなくなる場合があります。

原因は他にも、サーバーの設定だったり、プラグインの影響だったりする場合もあるようですが、まずは今回の対処法を試してみてはいかがでしょうか。

 

以上、自分も困ったネタのレポートでした。