公開前のサイトで、投稿画面が真っ白になりました。
タイトルも本文も、打っているはずなのに何も見えません。カーソルは動きます。文字数のカウントも増えています。それなのに画面には何も出てきません。
最後にBASIC認証を一時的に外したところ、文字が見えるようになりました。通信のどこで問題が起きたのかまでは確定できていませんが、この環境では認証の有無が症状と連動していました。
そこにたどり着くまでに、5つの可能性を潰しています。遠回りした記録として残しておきます。
まず起きたこと
環境はWordPress 7.1、テーマはSANGOです。公開前だったため、サイト全体にBASIC認証をかけていました。
投稿画面を開いて、タイトルと本文を打ちます。画面は白いままです。
ここで最初に確かめたのは、本当に文字が入っていないのか、それとも見えていないだけなのか、という点でした。ドラッグして範囲選択すると、青く反転した中に文字が浮かび上がりました。入力はできていて、色が白いだけです。
コードエディターに切り替えると、普通に読めます。書くことはできる。表示だけがおかしい。ここまでが出発点です。
疑って、外していったもの
順番に書きます。
追加CSS。 カスタマイザーの追加CSSに、サイト全体のスタイルを書いていました。html, body を直接指定している行があったので、それがエディターの中にも効いているのではないかと考えました。追加CSSを全部消して確認しました。変わりません。
テーマ本体。 ブラウザのコンソールに警告が出ていました。エディターのスタイルがiframeに正しく読み込まれていない、という内容です。あわせて、古いBlock APIについての警告も出ており、そこに並んでいたブロック名の接頭辞がSANGOのものと一致していました。
ただ、SANGOの更新履歴を見ると、Gutenbergブロックは3.12.7の時点でBlock API v3に対応済みとされています。警告の全文を保存していなかったため、これが本当にテーマ側の話だったのか、キャッシュされた古いファイルによるものだったのかは確定できていません。 ここは確かめきれていない点として残しておきます。
このとき、SANGO Gutenbergというプラグインを入れるべきかも検討しました。入れなくて正解でした。 SANGOの公式が、バージョン3.0以上ではこのプラグインは不要で、逆に不具合の原因になるとしています。ブロックエディター用の機能は、3.0でテーマ本体に統合されています。
子テーマ。 子テーマを有効化していたので、その functions.php がエディターに影響している可能性を考えました。いったん親テーマに切り替えて確認しました。変わりません。
プラグイン。 同じテーマ・同じWordPressバージョンで正常に動いている別のサイトと、一覧を比べました。問題が起きているサイトで使っているプラグインは、正常なサイトにもすべて入っていました。
ただし、一覧が同じでも、バージョンや設定、他の機能との組み合わせは異なります。 この比較だけでプラグインを完全に除外したとは言えません。今回の切り分けでは、目立った差が見つからなかった、というところまでです。同一サイト上でプラグインを止めて確かめるのが本来の手順で、そこはやっていません。
カスタマイザーの設定。 本文の文字色を白にしてしまっているのではないかと考えて、設定を探しました。該当する項目は見当たりませんでした。
別サイトとの比較で、目立った差が1つ
正常なサイトは公開中で、認証なし。問題が起きているサイトは公開前で、BASIC認証あり。ここが目についた差でした。
そこで、問題が起きているサイトの認証だけを一時的に外して確認しました。文字が見えました。
比較でわかるのは「差がある」ところまでです。効いたのは、同じサイトで認証だけを変えて前後を見たことでした。
なぜ起きるのか
ここから先は推測です。
WordPress 7.1の投稿エディターは、編集領域をiframeの中に表示します。BASIC認証が、そのなかで使われるスタイルの生成や読み込みに何らかの影響を与えた可能性はあります。
ただし、検証ツールのNetworkタブで401などの失敗を確認したわけではありません。 認証情報が付かなかったのか、別の処理やキャッシュが影響したのかは未確認です。ブラウザは同じ保護空間への後続のリクエストで認証情報を再利用するのが通常の挙動なので、単純に「認証情報が渡らなかった」と言い切れるものでもありません。
確かなのは、この環境では認証を外した直後に文字が見えるようになった、という事実だけです。
同じ症状のときに、確かめること
公開前のサイトで投稿画面が真っ白になったら、BASIC認証を一時的に外して確かめる方法があります。
ただし、外しているあいだは短時間でも外部からアクセスできる状態になります。 事前に「検索エンジンでの表示」を抑制する設定を確認し、公開したくない情報が入っていないことを確かめたうえで試してください。確認が終わったら、すぐに認証を戻します。
これで表示が戻るなら、公開時に認証を解除したあとも正常に表示される見込みは高いです。ただ、キャッシュを消した状態や別のブラウザでも同じかどうかは、公開前に一度確かめておいてください。
作業のあいだに記事を書く必要があるなら、コードエディターが使えます。Windowsなら Ctrl + Shift + Alt + M で切り替わります。見た目は素っ気ないですが、文字は普通に見えますし、公開後のページも正常に表示されました。
今回いちばん時間を使ったところ
コンソールの警告に飛びついたことです。
エディターのスタイルがiframeに正しく読み込まれていない、という警告が出ていたので、テーマ側の不具合だと決めつけました。更新を確認し、プラグインの導入を検討し、サポートへの問い合わせまで想定しました。
警告は症状と関係していた可能性がありますが、発生源までは示していませんでした。 そこを読み違えたまま、テーマの周辺を数時間さまよいました。
エラーや警告が出ていると、それが答えに見えます。けれど、警告は「何かが起きている」ことを伝えるだけで、「どこが原因か」までは言っていないことがあります。症状が起きていない環境でも同じ警告が出ていないかを確かめないと、判断できません。
もうひとつ学んだのは、別の環境と比べるより、同じ環境で条件を1つだけ変えるほうが速いということです。比較は差を見つけるまでで、そこから先は自分のサイトで確かめるしかありません。

コメント