WordPress — удивительная платформа. Из него можно сделать все что угодно: от блога до кофеварки. Но иногда он подкладывает такую свинью, что в коде приходится копаться часами. Так случилось и вчера…
Уже поздней ночью я решил проверить количество подписчиков FeedBurner и был неприятно удивлен его неработоспособностью. Проверив RSS-фид, оказалось что и он не работает. Причем, пару дней назад все прекрасно работало. На остальных блогах все было нормально. В итоге, потратив час времени, ошибку устранил так сказать жёсткими методами. Но об этом и многом другом теперь поподробнее.
Опера при открытии фида ругалась матом — XML declaration not at beginning of document и посылала меня учить XML разметку. Гугловский Хром неспешно намекал на ошибку — This page contains the following errors: error on line 1 at column 2: XML declaration allowed only at the start of the document. Below is a rendering of the page up to the first error. И также призывал меня изучить правила разметки.
Покурив мануал на данную тематику, я принялся исправлять ошибку.
1. Попытки удаления лишних пробелов в function.php и wp-config.php успеха не дали. Фид по прежнему отказывался работать, громко матерился и постоянно выдавал ошибку.
2. Установка плагина Fix RSS Feed вообще вывела из строя весь блог. Прогружалась только первая статья блога. В итоге лишь после перезаливки папок wp-admin и wp-includes блог восстановил работоспособность. Перед установкой данного плагина обязательно сделайте бекапы данных папок.
3. Самым действенным вариантом как всегда оказался метод ковыряния кода в блокноте.
Дабы восстановить работу RSS-ленты открываем файлы: «feed-atom.php», «feed-rdf.php», «feed-rss.php», «feed-rss2.php», «feed-rss2-comments.php» в блокноте. Лучше использовать для этих целей Notepad ++.
Находим в них строку (она в начале):
echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>'; |
И смело удаляем ее.Сохраняем, заливаем на сервер и радуемся работоспособности RSS фида.
После этого топаем в FeedBurner аккаунт, открываем вкладку Troubleshootize и кликаем Resync Now. Этим мы ресинхронизировали нашу RSS ленту.
Порой у меня возникают ощущения, что WordPress пишут российские программисты, ибо все исправляется только вмешательством в код.
Хороший пост! Подчерпнул для себя много нового и интересного!
Спасибо, ты просто спас! Я долбался больше 5 часов…
Спасибо!!! Помогло только удаление строк!
Ну так гляньте в конце файла, возможно лишний пробел завалялся
Ничего не помагает. Валидатор пишет, что есть пробел и ссылка какая то не корректная что ли:
Sorry
This feed does not validate.
line 1, column 1: Blank line before XML declaration [help]
^
In addition, interoperability with the widest range of feed readers could be improved by implementing the following recommendation.
line 14, column 88: Self reference doesn’t match document location [help]
… rel=»self» type=»application/rss+xml» />
помогите…
Не знаю, удалил эту строку в указанных файлах, ничего не поменялось. Как выдавало ошибку, так и выдает…
Спасибо! Как всегда все решается просто, только сначала нужно хорошенько покопаться в проблеме. За это респект автору!
Спасибо! Помогло только удаление строки!
Помогло, спасибо!