ワードプレスで「エラー: 予期しない出力によりCookiesがブロックされました。ヘルプが必要な場合はこちらのドキュメンテーションを読むか、サポートフォーラムをご利用ください。」と表示されログインできなくなった時の対処方法をお客様からご相談がいくつか寄せられましたのでいくつかご紹介いたします。
この記事の目次
チェック1 URLの変更
ワードプレスの設定画面でURL設定を変更した(触った)覚えがある場合、例えばwwwを付け加えた時などに正規のURLとワードプレスのURLがずれるなどしてCookieが取得できなくなることがあります。
この場合ワードプレスのインストールフォルダのwp-config.phpに下記のように追記して、エラーがなくなるかどうか試されてみてください。
※example.com の部分は御社サイトのURLで、www.をつけたバージョンと、つけないバージョンでそれぞれ試してみます。
define('RELOCATE',true); define('WP_HOME','http://example.com'); define('WP_SITEURL','http://example.com');
チェック2 最後に変更したファイルの文字コード
最後に編集されたファイルの文字コードが不正で、何らかの文字列がログイン画面の出力前に出力され、このエラーが出ることがあります。ワードプレスのファイルはすべてUTF8(BOM無し)という文字コードである必要があります。
Notepad++などのエディタで文字コードが正しいかどうか確認し、文字コードがUTF8(BOM無し)出ない場合は、文字コードを再設定し保存の上再度アップロードされてみてください。
wp-config.phpの文字コードも同様にお調べください。
チェック3 最後に変更したファイルの不正な空白
最後に編集したファイルの<?phpというコードの始まりを示す部分の前に空白文字が誤って混入しているとCookieエラーでログインできなくなることがあります。
ファイルを再度エディタで開き、空白文字(もしくは何らかの文字列)がコード開始前に混入してしまっていないか確認します。
チェック4 何らかのWarning文字列が出力されている
ログイン画面に、Cookieエラーだけでなく、上部にWarning…と続くワーニング文字列が出力されている場合、その出力がログイン時のCookieを阻害しエラーが出ていることがあります。
ワーニングは致命的エラーとはなりませんので、とりあえずワーニングの出力を抑制してログイン可能とするにはwp-congfig.phpに下記のように追記してログイン画面にアクセスしてみてください
define('WP_DEBUG', false); ini_set('display_errors','Off'); ini_set('error_reporting', 0 ); define('WP_DEBUG', false); define('WP_DEBUG_DISPLAY', false);
チェック5 HTACCESSの問題
HTACCESSというサーバー設定ファイルに不正な設定がある場合このエラーが出ることがあります。ワードプレスがインストールされているフォルダのHTACCESSファイルをいったんリネームなどして無効化し、下記のURLにアクセスしてログイン可能かどうか試します。
※example.comは御社サイトのドメインに書き換えられて下さい
http://example.com/wp-login.php
チェック6 不完全なアップデート
ワードプレスの更新をされた直後にログインできなくなったときは、wp-adminフォルダにファイルの欠損や破損がある場合があります。
ワードプレスを再度公式サイトからダウンロードして、ZIPファイルを解凍の上、FTPで接続の上wp-adminフォルダを手動でアップロードします。これでも修正されない場合はwp-includeフォルダのアップロードもお試しください。
チェック7 プラグインの問題、テーマの問題
これでも解決しなかったときは、プラグインまたはテーマのどこかに不正な文字列を出力している可能性があります。サイトのバックアップを必ずお取りになったうえで、wp-content/pluginsフォルダを_pluginsという名称にリネームしてログイン画面にアクセスしてエラーが消えるかどうか試します。
また、wp-content/themesフォルダも同様にリネームしてログイン画面にアクセスしてエラーが消えるかどうか試します。
どちらかでエラーが消えたらプラグインまたはテーマのどこかに不正なコードが紛れている可能性が高いです。
ちなみに、詳細なエラーをワードプレスで表示出力するには、wp-config.phpに下記のように追記します。このことによってログイン不可能としているテーマのファイルやプラグインのファイル名が表示されてより詳細に原因がどこにあるかがわかることがあります。
define( 'WP_DEBUG', true ); define( 'WP_DEBUG_DISPLAY', true ); @ini_set( 'display_errors', 1 );
チェック8 wp-config.phpの文字コードの問題
ワードプレスのファイルの文字コードがUTF8以外になっている場合、COOKIEが送信される前にエラーもしくは無用なデータが送信されてしまい「予期しない出力によりCookiesがブロックされました」エラーが出ることがございます。
下記のファイルの文字コードがUTF8になっているかを確認し、そうでない場合は、UTF8で保存しなおし、アップロードする必要があることがございます。
wp-config.php,テーマのfunctions.php ,index.php
特にUTF8 BOM有という文字コードの場合不要なデータがファイルに含まれてしまいログインできなくなる事例がございました。
文字コードはUTF8 BOMなしでワードプレスのファイルは保存されるようにしてください。
※文字コードはNotepad ++などのソフトウェアで変更可能です。