COLUMN/

WordPressのログイン画面が崩れCSSが読み込まれていないように見える時

とあるサイト構築の際、とあるタイミングからWordpressのログイン画面が崩れ、HTMLのプレーンなテキストだけのページとなってしまったことがありました。

下記のような感じです。

入力フィールド、ログインボタンなどは表示され、IDとパスワードを入力すると通常通り管理画面へログインできます。
しかし、ログイン画面だけが崩れている、という状況です。

どこかで何かが読み込まれていないのは明らかですが、その対処法をこちらに。

SiteGuardプラグインを使っていませんか?

ブラウザのWebインスペクタなどを確認すると、javascriptの「/wp-admin/load-styles.php」が読み込めていない、とのエラーが表示されていました。

このファイルはログイン画面の表示装飾を制御しているもので、必ず読み込まれるものです。

通常であれば問題なく読み込まれるはずですが、このサイトはセキュリティプラグイン「SiteGuard」を使用していたため、通常のログインURLからオリジナルのログインURLへと変更していました。

SiteGuardは優秀なプラグインですが、何かの理由によりこれを読み込むことができなくなっているかと推察できます。

SiteGuardプラグインから除外パスを指定する

解決のために、まずSiteGuardの「管理ページアクセス制限」ページを開きます。
すると、「除外パス」指定テキストエリアが表示され、いくつかの項目が表示されます。

ここには説明文が記載されていますが、SiteGuardは/wp-admin/から始まるパスのファイルへのアクセスを制限しますが、ここに入力してあるファイルについては許可する、というものです。

管理ページ(/wp-admin/以降)に対する攻撃から防御するための機能です。ログインが行われていない接続元IPアドレスに対して、管理ページのアクセスを、404(Not Found)で返します。ログインすると、接続元IPアドレスが記録され、当該ページのアクセスを許可します。24時間以上ログインが行われない接続元IPアドレスは、順次削除されます。この機能を除外するURL(/wp-admin/以降)を指定することができます。

ここに「load-styles.php」を追加します。

すると、カスタムされたURLからアクセスした時でも、ログイン画面が通常通り整えられた状態で表示されます。


多くの場合、この「load-styles.php」が原因となっていると思われますが、プラグインを使用していなくても、

・サーバのWAF(ファイアーウォールではねられている)

・サーバにSiteGuardが設定されている

などといったケースもあるようです。

その場合はサーバコントロールパネルからでも除外パスまたはファイルが指定できるケースがあるようですので、チェックしてみてください。

Yossio Nagata
Web Director / designer

沖縄県与那原町在住。ICT企業のウェブ部門担当、事業会社のインハウスデザイナーを経験。2012年より独立し、企業のウェブ制作、運用を専門に展開。 ロードバイクと山とコーヒーにこだわりを持つ。