Неккоректно работает RSS лента блога? Убираем ошибки синтаксического анализа XML

Приветствую вас друзья на блоге vitalykalinin.ru. Многие из вас наверняка испытывали проблемы со своей RSS-лентой. Если нет, то я вам завидую. Но информация, которая приведена ниже лишней не будет. В моём случае, по непонятным причинам, она переставала работать и как следствие, подписчики не получали рассылки обновления блога и стала страдать посещаемость блога. Как устранить эту ошибку RSS-ленты? Будем разбираться.Ошибка синтаксического анализа XML, RSS лента

Что же такое RSS-лента?

RSS-лента (или RSS-фиды) – это специальные каналы, через которые у вас есть возможность подписаться на обновления понравившегося вам сайта. Допустим, вы гуляли по интернету и наткнулись на интересный сайт. Можно конечно занести его в закладки браузера. И регулярно заходить на него и смотреть, появились ли обновления. Хорошо если он один или их несколько. А если таких сайтов десятки или сотни, то это отнимет кучу времени. Для этого и используется RSS-лента, позволяющая получать только обновления понравившегося ресурса.

Так же многие веб-мастера оценили возможности этого сервиса и используют RSS-канал своего интернет проекта для поддержания посещаемости и общения с постоянной аудитории своего сайта. И когда возникает ошибка в RSS, то автоматически теряется связь с читателями сайта и нужно срочно решать этот вопрос. Не внимание к этой проблеме может негативно сказаться на посещаемости вашего сайта.

И чаще всего проблемы эти возникают из-за ошибки синтаксического анализа xml, на который завязан RSS-канал. Ошибки эти могут быть вызваны различными факторами. Кто-то правит вручную код файлов темы. Или начали конфликтовать между собой плагины WordPress. Однозначно не скажешь, что является причиной. Всегда это сугубо индивидуально.

Существует достаточное количество сервисов, которые способны проверить корректность работы вашего RSS-канала. Но самый популярный из них это  Feedvalidator.org

Дальше по моей проблеме. Когда ещё только настраивал свою RSS-ленту, создал дополнительный электронный ящик и подписался на обновления своего собственного блога. Всё было замечательно и после публикации очередного поста через 12 часов приходило сообщение о появлении новой статьи на блоге, на который я подписан. Всё было нормально.

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

Я полез в Фид. Честно говоря, не заходил сюда давненько. Не было необходимости. Вот по ссылке, указанной на скриншоте, можно понять, в каком состоянии находиться ваш фид.

rss feed

Если всё нормально, то будет такая стандартная запись:

rss лента

У меня же выдало такую ошибку. Сервис предложил обратиться к Валидатору (онлайн инструменту, который проверяет html-код файла на соответствие стандартам кодирования).

rss xml

Я перешёл на страницу Валидатора. Кстати, как работать с этим сервисом, я буду рассказывать в следующих статьях, поэтому рекомендую подписаться на обновления блога.

Валидатор выдал мне вот такой ужас, который вы видите на картинке. Ему не нравился синтаксис html-кода. Галочкой показана ошибка.

ошибка

Я решил посмотреть исходный код страницы. Когда перешёл, увидел вот такую страшную штуку:

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

Из-за этого RSS-фид работал не корректно.

То, что проблема с ним из-за ошибки синтаксического анализа xml – это факт. Но её решение сугубо индивидуально, так как она может быть вызвана различными факторами. Это может быть и некорректная правка кода файлов темы. Или конфликт плагинов или особенности темы WordPress. Да всё что угодно.

Вариантов решения этого вопроса предложено в сети было не много. Некоторые рекомендовали поочерёдно отключать плагины и смотреть – ушла ли ошибка. Но результатов это не дало.

Путём проб и ошибок, я нашёл ответ и вам предлагаю действенные решения, которые могут помочь в этой проблеме.

RSS-лента перестала работать? Исправляем ошибки синтаксического анализа xml

Итак, предлагаю пути решения этой проблемы, которые я обнаружил.

Вариант 1.

Плагин Fix RSS Feed. Вы его стандартно устанавливаете и видите в панели управления (пункт 1). Затем нажимаете на кнопку Restore Fix (Пункт 2). Плагин сам находит проблему и её решает. Если проблема находиться в поле его компетенции, то он автоматически её убирает. Но мне не помогло.

Плагин Fix RSS Feed

Решил обратиться к фрилансерам и те, кто откликнулись, захотели за решение проблемы (50$). Решил сам разобраться, так как лучше быть готовым к проблемам такого типа и знать, как они решаются. Покопался полдня в интернете и нашёл ещё варианты.

Вариант 2.

Ампутация части файлов, связанных с фидом (перед редактирование обязательно сохраните копии этих файлов где-нибудь).  В корневой папке Вашего сайта на хостинге заходим в каталог wp-includes и с помощью Filezilla переносим следующие файлы на компьютер. Нужно будет кое-что подкорректировать в них.

Вот эти файлы:

feed-atom-comments.php
feed-atom.php
feed-rdf.php
feed-rss.php
feed-rss2-comments.php
feed-rss2.php

В feed-atom-comments.php и feed-atom.php нужно убрать всё, что находится до:

В feed-rdf.php до:

У feed-rss.php убираем всё до:

В feed-rss2-comments.php и feed-rss2.php до:

Вот такая штука. Это экстремально, но действенно. Очень важно, чтобы не было пустых строк и символов в начале и в конце файлов! Всё сохраняем и переносим обратно на хостинг.

Если ошибка была в этом, то результаты вы увидите не сразу, а через некоторое время.

В моём случае, результатов я не увидел.

Вариант 3. Кодировка.

Я взял все файлы темы с расширением php. Убрал пустые строки и символы в начале и в конце всех фалов и сохранил с кодировкой UTF-8 (без BOM).

rss wordpress

Убрались символы, на которые ругался Валидатор и фид чудесным образом заработал. Вот такое решение я нашёл на просторах всемирной паутины. Надеюсь вам эта информация пригодиться, и вы не будете, как я, сидеть 6 часов над поиском решения этого вопроса и не потеряете драгоценных подписчиков.

Надеюсь, что такой проблемы у вас не возникнет. Но в случае если RSS-лента вашего сайта перестала работать, и обнаружилась ошибка синтаксического анализа xml, вы будете знать, что делать. На этом всё. Впереди ещё много интересного, поэтому подписывайтесь на обновления блога.

RSS Fast – моментальное получение обновлений читаемых блогов:

На связи был Виталий Калинин!

Читайте ещё интересное на блоге