WordPressで複数のブログを運営するのに便利な「マルチサイト」機能。しかし、ドメインの設定変更やサーバーの移設などをきっかけに、「突然ブログのデザインが真っ白(文字だけ)に崩れてしまった!」というトラブルに遭遇することがあります。
文章や画像は出ているのに、デザイン(CSS)だけが全く当たらない状態です。

今回は、マルチサイトの環境を維持したまま、このデザイン崩れをピンポイントで解決した手順を健忘録としてまとめます。
—
原因はどこにある?確認で見つかった2つの謎
サイトのデザインが崩れる原因の多くは、デザインファイル(CSS)の読み込み先URLがズレてしまっていることです。そこで、確認のためにWordPressの管理画面から「設定 > 一般」を開いてみると、驚きの光景が……。
なんと、通常ならあるはずの「WordPress アドレス (URL)」と「サイトアドレス (URL)」の入力項目が、画面から跡形もなく消え去っていたのです。

消えた理由は「wp-config.php」での強制ロック
調べてみると、これはWordPressのバグではなく仕様でした。裏側の設定ファイルであるwp-config.phpの中でマルチサイトの設定を行うと、管理画面からURLを変更できないように項目自体が非表示になる仕組みになっています。
今回の場合、このwp-config.phpに書かれていたURLのパス設定が、実際のブログの設置階層(サブディレクトリ)と食い違ってしまっていたことが1つ目の原因でした。
—
デザイン崩れを直すための2ステップ解決法
マルチサイトの環境(他のブログ)を壊さずに、対象のブログだけを綺麗に元通りにするための手順です。
ステップ1:wp-config.php のパス修正
FTPソフト(FFFTPなど)を使ってサーバーに接続し、WordPressのルートディレクトリ直下にあるwp-config.phpをダウンロードしてテキストエディタで開きます。
ファイルの下部にあるマルチサイト設定の記述(以下の一節)を探します。
/* サイトネットワークを有効化中 */
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false);
define('DOMAIN_CURRENT_SITE', 'your-domain.com');
define('PATH_CURRENT_SITE', '/'); // ←ココが原因!この PATH_CURRENT_SITE の部分が '/'(ドメイン直下)になっていたため、サブディレクトリ型のブログ(例:/blog/など)のデザインファイルを見失っていました。
ここを、実際にトラブルが起きているブログのディレクトリ名に合わせて書き換えます。
/* 修正後:ブログのディレクトリ名に合わせる */
define('PATH_CURRENT_SITE', '/あなたのブログのディレクトリ名/');修正したらファイルを保存し、サーバーへ上書きアップロードします。
ステップ2:サイトネットワーク管理画面のURLチェック
次に、WordPressの大元であるデータベース側のURLも確認します。
- 管理画面の上部メニュー「参加サイト」 > 「サイトネットワーク管理」 > 「サイト」を開きます。
- 該当するブログの「編集」をクリックします。
- 「サイトアドレス (URL)」の欄が、正しいドメイン・URL(
https://...)になっているか確認し、違っていれば修正して保存します。

—
これでも直らない場合の盲点:プラグインの「キャッシュ」
裏側の設定(wp-config.php)も表側の設定(サイトネットワーク管理)も100%正しいURLに向けたのに、なぜかブログ画面が崩れたまま直らない……という罠にハマりました。
最後に残っていた原因は、コードではなくプラグインの強力なキャッシュ(古い記憶)でした。
サイトを高速化するプラグイン(例:Autoptimize など)を導入している場合、プラグインが古いURL時代のデザインデータをサーバー内にガッチリと保持し続けてしまうことがあります。
解決策はとてもシンプルでした。管理画面の上部メニューなどからプラグインの「キャッシュを削除」を実行します。

その後、ブラウザ側でも古い記憶を読み込まないように「Ctrl + F5」(Macは Cmd + Shift + R)でスーパーリロード(強力な再読み込み)を試したところ……

▲無事にスタイルシートが読み込まれ、元の綺麗なデザインに大復活!
—
まとめ:マルチサイトの表示崩れは「パス」と「キャッシュ」を疑え
マルチサイト環境でのデザイン崩れは、システムがデザインファイルを探しに行く「住所(パス)」がズレているか、古い住所の「記憶(キャッシュ)」が残っていることが原因の大半です。
wp-config.phpのPATH_CURRENT_SITEを見直す- サイトネットワーク管理でデータベースのURLを見直す
- 高速化プラグインのキャッシュを真っ先にクリアする
もし同じようにマルチサイトのWordPressでレイアウトが崩れて絶望している方がいたら、ぜひこの3点を確認してみてください!
コメント