Приветствую, друзья. Сегодня совершенно случайно обнаружил, что у меня перестала работать RSS подписка на обновления блога. Готовил другую статью, для этого зашел на страничку biznessystem.ru/feed/, а она мне вот такую ерунду показала.

Ошибка синтаксического анализа XML

Не зашел бы, так и не был бы в курсе, что мои посетители не могут подписаться на новости. Не знаю, в течение какого времени эта штука перестала работать, видимо, или я где-то накосячил при правке файлов сайта или разработчики что-то намудрили и ошибка появилась после очередного обновления WordPress.

Итак, код я получил такой:

Ошибка синтаксического анализа XML: объявление XML или текста не в начале сущности
Адрес: http://feeds.feedburner.com/dzhilin
Строка 2, символ 1:<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
^

Поиски проблемы

Сначала появилась мысль, что что-то с файлами отвечающими за RSS. Поискал в интернете и нашел несколько статей, которые рекомендовали искать причину в них. Открыл поочередно wp-rss.php, wp-rss2.php, wp-feed.php не нашел там никаких лишних строк и пробелов.

Окончательно разуверился в теории о системных RSS файлах после того, как проверил ленту на других своих сайтах, имеющих ту же версию wordpress – там все работало. За исключением одного сайтика, который я использую для всяческих экспериментов.

Лечение ошибки

Пришла догадка, что проблема, все таки, моих рук дело. Я кое-что менял в файле function.php своей темы. Проверял на тестовом сайте, потом вносил изменения в блог – на обоих не работает RSS лента.

Открыл этот файлик и, аллилуйя, в конце, после закрывающего тега «?>» стояли две пустых строки.

Удалил эти строчки и нормальная работа восстановилась.

Интересно, что на тестовом сайте все заработало мгновенно, а на блоге спустя пару минут (не знаю с чем это связанно).

Итак, если вы столкнетесь с сообщением «Ошибка синтаксического анализа XML: объявление XML или текста не в начале сущности» — ищите проблему в лишних пробелах или строках в php файлах перед кодом или после него.