Written by Kasumi

wordpressのfeed取得先がEntity: line 2: parser で見れない時の対処方法

こんにちは、カスミです。

さて、以下のようなお悩みをお持ちでしょうか?

wordpressのfeedを取得したが、以下のようなエラーがでてうまく表示されない。

Warning
: simplexml_load_string(): Entity: line 2: parser error : XML declaration allowed only at the start of the document in

本記事では上記のようなエラーが出たときの対処方法について解説致します。

ワードプレスのfeedを取得するやり方については以下記事を参照ください。

feed.phpをブラウザで開いて確認

取得元のワードプレスサイトで、feed.phpをブラウザで開きます。

feed.phpの見方はドメインの末尾に/feed/で開けます。

開くと上記画像のようなxmlのコードが出てきます。

冒頭で書いたエラーは、xmlで正しくない文字列があるときにでるエラーになります。

上記画像の場合だと一行目に空白の行があり、それがxmlで正しくない文字列と判断されていたようです。

functions.phpで空白の行がないか確認

functions.php内で上記画像の箇所のようなphpの開始・終了タグの間に不要な空白改行などあったら削除し詰めます。

xmlで最初の方に空白があり文字列エラーを起こしてる場合はfunctions.php内の空白・改行が原因の可能性があります。

この空白・改行を削除し、feed.phpを再度開きます。

xml最初の空白・改行が無くなっていることを確認し、取得先のページでエラーが無くなれば完了です。

まとめ

ある案件でいきなりwordpressのfeedが取得先で開かなくなった事がありました。

ワードプレスのバージョンアップ、プラグインのバッティングなど考慮しました。

結局原因はfunctions.phpを修正した時に空白・改行が入っていたことによるエラー。。

xml取得にかぎらず、functions.phpに余計な空白・改行があると他のエラーにも繋がるので気を付けましょう。

以上で解説を終わります。

目次

関連記事

Webツール プログラミング

chromeブラウザで更新したファイルのキャッシュ有効期間を調べる方法【htmlサイト】

2022.01.20
8726
WordPress

【WordPress】投稿記事にコンテンツ(本文)があるかどうか判別する方法

2023.02.17
1251
WordPress プログラミング

【簡単】カスタム投稿のタクソノミーページでパーマリンクからタクソノミー名を削除し、ターム名のみにする方法

2022.01.30
6061
WordPress

【WordPress】登録されてるカスタム投稿タイプのスラッグを配列ですべて取得する方法

2022.11.09
972