XML パースエラー: 実体の初めに XML またはテキスト宣言がありません。

 久々にWordPressをごにょごにょ。プラグインを作るのである。Lightweight Google Maps (地図プラグイン)とのマッシュアップ(うそ)。
 で、動いていたはずのLightweight Google Mapsの固定ページの表示がうまくいってないことに気づく。いつから? とりあえず、プラグイン自体のアップデートは行われてないようなので除外。WordPress本体か? と思いつつ最新にアップデート。それでもだめ。FirefoxのFireBugでチェックすると、本体と取得したXMLファイルについてこんなメッセージ。

XML パースエラー: 実体の初めに XML またはテキスト宣言がありません。

 このフレーズで検索すると、PHPスクリプトに空白行を出力する部分があるのではないか、とのこと。プラグインが問題を起こす場合もある、ともある。今、作っていたやつをチェック。問題なし。
PHPによるWordPressカスタマイズブック―2.8対応 テンプレートの改造からプラグインの作成まで で、もしやほかのプラグイン? と思い、いくつか無効にしてみたり。結果。前に作った自作のプラグインが原因。最後の「?>」のあとに空行があった。ということで、「?>」をはずすことで解決。
 自分のプログラムが問題を起こしてるとはまったく気づかなかった。今後は気をつけよう。
 で、今回の不具合。IEでは問題なく動いていたので気づくのが遅くなった。Firefoxでのみおかしかったのだ。Firefoxが厳密ってことなのか? ファイル頭の空行だけでこんなことがあるとは思わなかった。注意。

コメント