WordPressのログイン画面で「予期しない出力によりCookiesがブロックされました」「画面が真っ白になった」の対処方法

WordPressのログイン画面で「予期しない出力によりCookiesがブロックされました」「画面が真っ白になった」の対処方法

WordPressの管理画面を開こうとしたところ、

・画面が真っ白になったり
・「予期しない出力により Cookies がブロックされました」というエラーが表示されたり

して管理画面にログインすることができなくなることがあります。

予期しない出力により Cookies がブロックされました

ここでは、その状態になった際に疑うべき点と対処方法を解説します。

WordPressログイン画面が真っ白になる場合の対処方法

WordPressログイン画面が真っ白になる場合は、まずは「functions.php」を疑ってみます。

多くの場合、phpファイルをカスタマイズした後に保存する際の文字コードが原因となっている場合が多いようです。

文字コードを疑う

例えば、「functions.php」をカスタマイズする場合、FTPソフトでローカル環境(パソコン内)に移し、ローカル環境で編集して、サーバーにアップする方法があると思います。

このときに、phpをWindowsのメモ帳(notepad)を使って編集している場合は要注意です。

FTPソフト

保存する文字コードが「BOMありUTF-8」の場合が原因

Windows 10 May 2019 Update (バージョン1903)のメモ帳(notepad)からは「BOMなしUTF-8」がデフォルトの保存形式になりましたが、それ以前のメモ帳(notepad)のデフォルトの保存形式は「BOMありUTF-8」です。

BOMとは、「このテキストファイルの文字コードはUTF-8です」とコンピュータに知らせるためにファイルの先頭に付けられるデータですが、このBOMがあるがゆえに不具合を起こすことが少なくありません。

サーバーによっては、不具合を起こさないものもありますが、例えば当サイトでレンタルしているカラフルボックスというレンタルサーバーでは、「functions.php」を「BOMありのUTF-8」で保存するとWordPressのログイン画面が真っ白になります。

ちなみにエックスサーバーでは画面は真っ白にならず問題なく動作するようです。

つまり、Windows 10 バージョン1903以前のメモ帳(notepad)を使って保存する場合は、「BOMありのUTF-8」で保存されますので、サーバーによってはそのまま移行すると画面が真っ白になるという訳です。

そして、これは「functions.php」に限ったことではありません。

ブログのデザインに変更を加えたり、機能を追加したり、また、WordPressテーマの不具合を修正したりと、header.phpやsingle.phpをカスタマイズをすることがあります。

しかし、header.phpやsingle.phpなどでも、「BOMありのUTF-8」で保存すると、WordPressで画像がアップロードできなくなったり、ホームページの表示がおかしくなったり、と不具合が出る場合があります。

phpファイルもそうですし、HTMLやCSSファイルも様々な不具合の原因になります。

文字コードによる不具合に解決策

解決策としては、Windowsのメモ帳(notepad)の使用は避け、TeraPadや秀丸エディタなどを使って「BOMなしUTF-8」で保存して移行するようにします。

私も使っているTeraPad(無料)では、保存の際に、文字コードの選択肢としてUTF-8とUTF-8Nが選べますので「UTF-8N(UTF-8 BOMなし)」を選んで保存します。

秀丸エディタなどで選択肢にエンコードの種類がUTF-8しかない場合はUTF-8を選び、「BOMの有無」の箇所で「なし」を選択するようにします。

「予期しない出力により Cookies がブロックされました」というエラーの対処方法

「予期しない出力により Cookies がブロックされました」というエラーが表示さる理由は様々な原因が考えられますが、最も多いケースはやはり「functions.php」を弄って起こるケースです。

事前に「functions.php」を編集していた場合で、WordPressのログイン画面に不具合が出たらまずは「functions.php」を疑いましょう。

エラー箇所の見つけ方

エラーの箇所の見つけ方の一つとしてエラー箇所を表示させる方法があります。

WordPressフォルダの直下にある「wp-config.php」ファイル内の

・「define( ‘WP_DEBUG’, false );」の箇所を
・「define( ‘WP_DEBUG’, true );」に変更します。

そうすると多くのサーバーでは、WordPressのログイン画面で、

「Parse error: xxxxxxxxxx/functions.php on line 97」といったように、問題を起こしたphpファイル名とエラーが発生した行を表示してくれます。

「サイトで技術的な問題が発生しています。サイト管理者のメールを確認して指示に従ってください。」というメッセージとともに表示される場合もあります。

コーディングミスもそうですが、改行コードが入って問題を起こしているケースもあります。

ファイル名と行からエラー箇所を特定し、必要な変更を加えます。

尚、文字コードは「BOMなしUTF-8」で保存して移行するようにして下さい。

まとめ

WordPressのログイン画面で、突然、「画面が真っ白になったり」「予期しない出力により Cookies がブロックされました」というエラーが表示されたりする原因は、色々な原因が考えられますが、最も多いケースが「functions.php」をカスタマイズした場合です。

コードの編集ミスの場合もありますが、文字コードが、「BOMありのUTF-8」で保存されているケースも少なくありません。

phpをカスタマイズする際は必ず編集作業をする前にバックアップをとり、問題が発生したらいつでも元に戻せるようにしておきましょう。

そして、phpやhtmlなどを編集する際は、Windowsのメモ帳の使用は避け、TeraPadや秀丸などを使って必ず「BOMなしのUTF-8」で保存してアップロードするようにしましょう。

関連記事

WordPressでブログを開設しようとされている方や既にWordPressでブログを運営されている方で、どこのサーバーをレンタルするか、又は移行するか悩んでいる方は多いと思います。ここでは、管理人が自[…]

WordPressでブログを開設するのにおすすめのレンタルサーバー4選