Решение проблем с RSS на блогах WordPress

Владельцы блогов на CMS WordPress периодически сталкиваются с проблемой неработающей подписки RSS своего блога. Одна из проблем это сообщение

Ошибка разбора XML

Ошибка разбора XML: синтаксическая ошибка (Строка: 2, Символ: 0)

Обработать документ как HTML
Ошибка:
XML declaration not at beginning of document 
Описание:
http://www.w3.org/TR/REC-xml/ 
  1: 
  2: <!--?xml version="1.0" encoding="UTF-8"?-->3:

при нажатии на ссылку "Подписка RSS". Это следствие проблем с кодировкой. Чаще всего они возникают когда редактирование файлов происходит не в тех редакторах и без соблюдения кодировки. Для начала нужно определиться - виновата тема, плагины или движок?
Прежде всего если у вас подписка организована через  FeedBurner, проверьте активирован ли плагин FeedBurner FeedSmith Extend. Именно он отвечает за переадресацию на  FeedBurner Ваших подписчиков. Если с плагинов всё в порядке то меняем тему, отключаем плагины, если проблема осталась - значит причина в файлах движка wordpress.

Вариант 1. Исправляем ошибки кодировки и конвертируем базу данных блога в UTF-8. Для этого существует замечательный плагин Convert WP Database to UTF-8. Конечно перед любыми действиями необходимо сделать бэкап, но у меня этот плагин ни разу не создал проблем. Наоборот он как палочка выручалочка. При первых же проблемах на блоге сначала использую его. После установки плагина у Вас в админпанели в меню плагины появится пункт UTF-8 DB Converter . Смело нажимаем, конвертируем.

Вариант 2. Можно попробовать решить проблему плагинами типа Fix Rss Feeds и Fix My Feed RSS Repair но с ними нужно быть осторожнее. После их "работы" возможно придётся переустанавливать wordpress.

Вариант 3. Решить проблему с RSS можно ручной правкой кода. Заходим с помощью FTP клиента в папку “wp-includes”, и открываем в любом текстовом редакторе поддерживающим кодировку UTF-8 без BOM (например Notepade++), следующие файлы:  “feed-rss2.php“, “feed-rss2-comments.php“, “feed-atom.php“, “feed-rdf.php“?  “feed-rss.php“.

В начале каждого из них находим строчку:

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

и  удаляем.

Но это не всё. Если у Вас подписка RSS организовано стандартными средствами wordpress, то всё заработает.  Просто введите в адресную строку браузера  http://ВАШ_САЙТ/feed/. Если работает встроенная, но не работает через FeedBurner , то проверьте плагин о котором писалось выше .  Или можете остаться на встроенной подписке. В этом случае просто нужно на иконку RSS "прикрутить ссылку" на http://ВАШ_САЙТ/feed/. В виде кода (отредактируйте под свой сайт) это может выглядеть так:

<a style="position: fixed; right: 0px; top: 294px;" title="Подписаться на мой фид" type="application/rss+xml" href="http://ВАШ_САЙТ/feed" rel="alternate"><img style="border: 0;" src="ССЫЛКА_НА_ИКОНКУ_RSS" alt="" /></a>

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

Если всё вышеперечисленное не помогло - переустановка wordpress.

One thought on “Решение проблем с RSS на блогах WordPress”

  1. Marina

    Удалила куски кода и лишние пробелы из указанных выше файлов — фитбернер подключился без крокозябров. А родной фид так и остался крокозябровым. Задала кодировку через хтаксесс — заработало все нормально. Вернула куски удаленного кода — продолжило работать. Хостинг hoster.ru (Служба поддержки сильно мозги не напрягает, перенесли аккаунт с одного на другой сервер без проблем, но грязно, больше проблем не возникало).
    Всем удачного разрешения проблемы!

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>