サイトマップエラー error on line 2 at column 6: XML declaration allowed only at the start of the document の修正 ( XMLパースエラー )

概要説明

カスタマイズを行っていると時々遭遇するサイトマップの先頭空白パースエラー。header周りまたはfunctions.phpを修正している際に混入するケースが多いですが他にもデバッグ時の処理なども影響する場合があります。

This page contains the following errors:
error on line 2 at column 6: XML declaration allowed only at the start of the document
Below is a rendering of the page up to the first error.

1行目が空行の場合にエラーになる

サイトマップエラー error on line 2 at column 6: XML declaration allowed only at the start of the document の修正 ( XMLパースエラー )

xmlのソースを確認してみると1行目に空白が入っていました

<?php
// 記述
?>

↑phpファイルの?>の後に改行が入ってたことが今回の原因

プログラム外に改行の記述があるかデバッグ処理で空行が先頭に入ってしまっているかが原因としては多いです

空白行以外でエラーになるパターン

error on line 1 at column 37: Blank needed here

次に多いのが文法エラー。構文をよく確認してみて下さい。上記は

<?xml version="1.0" encoding="UTF-8"?>

と記述しなけれいけないところが最後の?が無いために発生したエラーです

<?xml version="1.0" encoding="UTF-8">

サイトマップのxml文法に影響のある置換処理などを出力前に行っているとエラーになります。過去このパターンも有りました

関連機能

  1. 「this will throw an Error in a future version of PHP」の直し方(PHP 8 では Fatal error でサイトが止まる)

  2. WordPress のカテゴリーの並び順を変える(Category Order and Taxonomy Terms Order と、コードで並べる方法)

  3. Notice: ob_end_flush(): failed to delete and flush buffer. No buffer to delete or flush inの対応

サイドバー

よく使うカスタマイズ

最近の記事

Profile

PAGE TOP