浦和の小さなweb屋さん

XMLエラー:XML declaration allowed only at the start of the document

XML or text declaration not at start of entity
XML declaration allowed only at the start of the document

XMLの宣言が数行あとに書かれていて、XML宣言の前に空の行が出力されているときに出現したエラーです。
条件としては、
・yoast SEO を使用していることです。

対処方法1:feed-rss2とfeed-rss2-commentsに「ob_end_clean();」を追記する

ひとまずエラーが消えた対処は以下になります。

wp-includes/feed-rss2.php
wp-includes/feed-rss2-comments.php

<?php 
ob_end_clean();

対処方法2:function.phpに余計な空白、空行がないかチェック

エラーは対処方法1で消えましたが、xmlファイルをソースで見ると、頭に数行の空白が入っています・・・。気持ち悪い・・・。
色々調べてみましたが、yoast SEOのブログに以下のエントリーがありました。

Sitemap Error: XML or text declaration not at start of entity


※このエラーはyoast SEOが原因ではありません

the cause most often is an empty line at the end of the functions.php file.

だいたいのケースで、function.phpの最後の方の行に、空白があることが多いよ、とのこと。

function.phpの最後の方に、xmlで空いていた行と同じだけの空行がありましたので削除で解決しました。

共有
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
Posts published: 48
Copyrights © idew. All Rights Reserved.